Foxtable(狐表)用户栏目专家坐堂 → SQLInsertFile 的用法


  共有3585人关注过本帖树形打印复制链接

主题:SQLInsertFile 的用法

帅哥哟,离线,有人找我吗?
nxhylczh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
SQLInsertFile 的用法  发帖心情 Post By:2019/12/17 23:18:00 [只看该作者]

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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2019/12/17 23:19:00 [只看该作者]

另问  如果是多行数据,如何确保服务器与本地数据和一致性呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/18 8:52:00 [只看该作者]

到后台数据库把列 'Image'设置为可以为空。另外不是特别必要建议不要使用关键字做列名,可能会出现一些不必要的麻烦。

其次二进制列添加数据只能在主表里使用,不能在临时表里使用。
SQLcommand返回的表有个特殊的地方就是保存了的行就无法再次编辑保存,也就是只能保存一次。

 回到顶部