以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据上传至远程数据库,如何保存上传前的数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=15637)

--  作者:Liuxinyu
--  发布时间:2012/1/4 14:04:00
--  数据上传至远程数据库,如何保存上传前的数据

狐爸:

    您好!我是上月才入行的新手,想编个远程报表上传系统,在本地编制报表时,可以任意保存在内部数据表中,直到点击【上传】按钮时,才将数据保存到远程数据库SQLServer中。如何实现;如果有多张报表仅使用同一个内部数据表的话,如何实现?

    请各位狐哥狐姐给予帮助!图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2012/1/4 14:10:00
--  

直接使用远程的sql server即可,参考帮助文件《网络与数据源》这一章。

 


--  作者:Liuxinyu
--  发布时间:2012/1/4 15:59:00
--  重定向+高速合并

非常感谢!

 

狐爸的意思是:使用数据源【重定向】+【高速合并】来实现吗?

 

如果表结构相同没有问题;如果不同(比如报表项目名称不包括在报表数据表中,报表数据表中只有项目编码)该如何实现呢?


--  作者:狐狸爸爸
--  发布时间:2012/1/4 16:10:00
--  

如果这样,先输入内部数据表,确定上报后,再将数据填入外部数据表(也就是SQL Server表),并保存。

参考:

http://www.foxtable.com/help/topics/1533.htm

 


--  作者:Liuxinyu
--  发布时间:2012/1/4 16:38:00
--  

狐爸:

    您好!多谢指教。下列代码是否可用于任何表。我的意思是说,dr1有若干个列,其中包括下述三个列;而dr2也包括若干个列,其中包含下述三个列;是否可运行下列代码?

 

Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim
Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each
dr1 As DataRow In DataTables("表A").Select("[金额] > 100")
Dim
dr2 As DataRow = DataTables("表B").AddNew()
For
i As Integer = 0 To Cols1.Length -1
dr2(Cols2(i)) = dr1(Cols1(i
))
Next
Next

 

理论上讲,这句话“dr2(Cols2(i)) = dr1(Cols1(i))”是无法解决上述问题,对吗?如果将i参数换成名称,是否可以答复上述问题,请狐爸指教。

[此贴子已经被作者于2012-1-5 9:52:01编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/1/5 10:25:00
--  
上述代码适合于任何表。
--  作者:Liuxinyu
--  发布时间:2012/1/9 10:44:00
--  

我明白了,谢谢!

上述存在一个低级的理解错误。

 

dr2(Cols2(i)) 与 dr2.cols(i) 是不同的。前者从数组 Cols2 中取得数据;后者是从表的属性列中取得数据;

 

上述案例供初学者学习,予狐哥狐姐精益求精。

 

支持 FOXTABLE , 让每位中国人都成为数据处理专家!

[此贴子已经被作者于2012-1-9 10:46:54编辑过]