Foxtable(狐表)用户栏目专家坐堂 → 直接用sql语句代替ft默认保存出现的问题?


  共有1787人关注过本帖平板打印复制链接

主题:直接用sql语句代替ft默认保存出现的问题?

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


加好友 发短信
等级:八尾狐 帖子:1907 积分:16954 威望:0 精华:0 注册:2014/7/29 19:09:00
直接用sql语句代替ft默认保存出现的问题?  发帖心情 Post By:2017/3/24 20:24:00 [只看该作者]

想提高效率直接用下面的代码保存新增行,
Dim t As System.Data.DataTable = tb.DataTable.BaseTable
'获取新增行数
Dim t1 As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.Added )   '新增行
If t1 IsNot Nothing Then
    For Each dr As object In t1.Rows
        Dim str1 As String = ""
        Dim str2 As String = ""
        For Each dc As object In t1.Columns
            If dr(dc).Tostring  > "" Then
                str1 & = dc.ColumnName & ","
                str2 & = "'" & dr(dc.ColumnName) & "',"
            End If
        Next
        Dim strsql As String = "insert into " & tb.name & "(" & str1.trim(",") & ") Values('" &  str2.trim(",") & ")"
        Output.Show(strsql)
    Next
End If

输出的sql语句为:
insert into 采购单_主表(_Identify,_Locked,_SortKey,类别,供应商,采购日期,采购员,币别,采购单号,sys_Fbh,sys_Fzt,sys_Inputer,sys_Edate,sys_Mdate,sys_Dept,System_Sort_Temporary,System_Filter_TemporaryValues(''0','False','1','生产采购','宝源昌','2017-03-24','开发者','RMB','CG1703-001','1','待处理','开发者','2017-03-24 19:36:59','2017-03-24 19:36:59','MIS','0','1')
有两个问题
1 这种方式真的会比foxtable默认的保存方式快很多吗,当一次插入或修改多行保存时?
2 sql的数据库,不想区分数字,日期或者字符,都是用单引号括起来,在sql数据库中保存应该不影响吧?
3 可能是最大的问题,ft默认的三个系统列我要怎么赋值,是不是直接过滤掉就行(_identify后台数据库是自增可以不用,_Locked没有用,但有用_SortKey排序,要怎么赋值呢?
  还有后面会多出两列System_Sort_Temporary,System_Filter_Temporary,这个是怎么回事,直接按这两个名称过过滤吗,因为是通用的代码?

谢谢!





 回到顶部
总数 17 1 2 下一页