以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 2022.01.29和最新预览版sql command bug (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177380) |
-- 作者:lgzhao -- 发布时间:2022/5/19 15:17:00 -- 2022.01.29和最新预览版sql command bug bug 描述: 通过sql command生成的datatable不能保存。sql server数据源。 这个错误简直没有道理。 代码示例: Dim TotParts As Integer = 3 Dim SalesONX As String = "SO-009622" If TotParts < 1 Then messagebox.show("Can not proceed. Total parts must >= 1" , "Error", Messageboxbuttons.ok, MessageBoxIcon.warning) Return 0 End If Dim cmd As New SQLCo mmand cmd.connectionname = _ConnectionName cmd.Comma ndText = "SEL ECT * from {SalesOrdsForDispatch} where SalesON=\'" & SalesONX & "\'" Dim DTB As DataTable = cmd.Execu teReader(True) Dim ExistTotParts As Integer = DTB.DataRows.count If TotParts = ExistTotParts Then messagebox.show("Can not proceed. Total parts = existing no. of parts" , "Error", Messageboxbuttons.ok, MessageBoxIcon.warning) Return 0 End If \' ****************************************************************** If TotParts > ExistTotParts Then \'如果全部发货了,则不允许再次拆分 Dim tr As DataRow = dtb.find("DateDelivered is null") If tr Is Nothing Then messagebox.show("Can not proceed. All the parts have been delivered." , "Error", Messageboxbuttons.ok, MessageBoxIcon.warning) Return 0 End If \'增加新的parts Dim kr As DataRow = DTB.DataRows(0) For i As Integer = ExistTotParts + 1 To TotParts Dim nr As DataRow = DTB.addnew For Each cl As DataCol In DTB.DataCols Dim cname As String = cl.name If Cname Like "SiteFeed*" = False Then Select Case Cname Case "Weight", "Status", "PartNo", "DateDelivered", "DispatchNo", "MaxLth", "Progress_Stock", "Printed" Case Else nr(Cname) = kr(Cname) End Select End If Next nr("PartNo") = i & "/" & TotParts Next Output.Show(dtb.DataRows.count) DTB.save \'(这句代码会报错) 新增行无法保存 messagebox.show("Successful. Order has been split into " & Totparts & " parts." , "Note", Messageboxbuttons.ok, MessageBoxIcon.Information) Return 0 End If |
-- 作者:lgzhao -- 发布时间:2022/5/19 15:19:00 -- 代码执行后,被修改的行可以保存,单新增的行无法保存,提示大串文字错误。 |
-- 作者:lgzhao -- 发布时间:2022/5/19 15:53:00 -- 补充说明以下,数据库那头没有任何索引、视图一类的。就是纯foxtable建立的表。 |
-- 作者:有点蓝 -- 发布时间:2022/5/19 16:01:00 -- |
-- 作者:lgzhao -- 发布时间:2022/5/19 16:03:00 -- 我发现的问题: 这段代码很长时间一直运行正常。不久前我增加了datetime列,这次赋值的时候没有排除datetime列。 此时源行的datetime列值是空值,但赋给了新增行,导致新增行保存时被数据库拒绝。 请贵方查一下应该时这个原因,不过这也勉强算是一个bug,毕竟同样结构的数据,彼此赋值应该时常见操作,foxtable应该考虑这种情况进行修复。
|
-- 作者:有点蓝 -- 发布时间:2022/5/19 16:51:00 -- 是有问题,已反馈 |