以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQLInsertFile 的用法 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144366) |
-- 作者:nxhylczh -- 发布时间:2019/12/17 23:18:00 -- SQLInsertFile 的用法 sql="s e l e c t * from {TU_P06} where [_Identify] is null" Dim WebP06 As DataTable =Functions.Execute("ExecuteReader","WebMdb",sql,True) ‘返回一个可以修改的表 Dim Filter As String ="账套编码=\'" & vars("mdbid") & "\' and 年=" & dr("期间_年") & " And 月=" & dr("期间_月") & " and 凭证编号=" & dr("凭证_号") Dim P06Drs As List (Of DataRow) = P06DataTable.Select( Filter ) \'在本地P01表中查找当前要上传的凭证 webP06.SQLDe leteFor(Filter) \' 多行数据,无法与本地确定唯一关系 ,暂时先删除,以后想到好的办法了 按新办法解决 For Each p06dr As DataRow In P06Drs Dim WebDrP06 As DataRow =WebP06.AddNew For Each cr As DataCol In P06DataTable.DataCols Select Case cr.Name Case "Ver" WebDrP06("Ver")=ud Case Else WebDrP06(cr.Name)= P06Dr(cr.Name) End Select Next WebDrP06("Creator")= _UserFullName WebDrP06("CreateTime")=ud WebdrP06.Save ’先保存 再在当前行插入保存文件 WebDrP06.SQLInsertFile("Image",P06Dr("FileName")) ‘P06Dr("FileName") 是一个实际存在的Zip压缩文件 WebdrP06.Save Next 标红的地方就报错 第一次报错 不能将值 NULL 插入列 \'Image\',表 \'WebAcc.dbo.TU_P06\';列不允许有 Null 值。INSERT 失败。 第二次报错 新增行必须先保存,才能提取或设置后台数据! 第三次报错 不能将值 NULL 插入列 \'Image\',表 \'WebAcc.dbo.TU_P06\';列不允许有 Null 值。INSERT 失败。 是代码运行一次 连续弹出三次错误 |
-- 作者:nxhylczh -- 发布时间:2019/12/17 23:19:00 -- 另问 如果是多行数据,如何确保服务器与本地数据和一致性呢? |
-- 作者:有点蓝 -- 发布时间:2019/12/18 8:52:00 -- 到后台数据库把列 \'Image\'设置为可以为空。另外不是特别必要建议不要使用关键字做列名,可能会出现一些不必要的麻烦。 其次二进制列添加数据只能在主表里使用,不能在临时表里使用。 SQLcommand返回的表有个特殊的地方就是保存了的行就无法再次编辑保存,也就是只能保存一次。
|