请大家帮忙说说解决方案---最好的存为DBF文件方法 (200分)

  • 主题发起人 主题发起人 onedot
  • 开始时间 开始时间
O

onedot

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么样把MS SQL里的一个表的数据方便地存档为一个DBF文件?
//我的程序连接MS SQL和DBF都是使用ADO
我自己现在的解决方案是这样的
就是看对应的表调用对应的SQL建立对应DBF表(这个好象就感觉不爽)
然后使用一个TADOTABLE连接到刚建立的DBF表上
然后再复制数据,我靠!
当然我还有第二套解决方案,就是建立一套空的DBF表,其结构和需要导出的表结构一样
然后复制哪个表时就使用API把对应空的DBF表复制一个副本,让ADO连接到这个副本上
后面就一样了。这样无非省了建表的过程而已。
不知道哪位知道有没有方便的办法直接把一个TADODATASET或类似DBGRID的数据存档为DBF的?
记得PB里的数据窗口就可以
各位帮忙说说其他的解决方案
 
对了,我还有过一个解决方案
就是建ADO表和前两个方案一样,无非最后拷贝数据我借助XML作为中间层,省去自己代码复制
先把连MS SQL的TADOQUERY结果SAVE AS 为一个XML文件
然后把连接到DBF的TADOTABLE从XML文件LOAD
但我还是觉得不爽,所以请教大家有什么更好的方法!
 
你的方面就可以啊。当然建表可以在程序代码中建。
 
你为什么非要用DBF数据呢?为了向下兼容?为什么不将DBF全部转换到SQL中?
 
To micro73:你以为我是技术偏执狂?!客户要求必须的。
to hunterteam:方案都行,但我觉得不好,所以来讨论一下
 
ms dts不是可以直接输出表到DBF吗?
 
谢谢王寒松!
仅仅完成数据复制DTS自然是可以
但有两个原因我不使用它
一是:我是客户端程序完成该工作,不是由管理员或者程序员完成这个工作,用户不会用DTS
二是:客户端仅仅需要生成DBF文件,至于没有安装FOXPRO无所谓(它不需要打开)
而DTS是要求运行DTS的机器有对应的动态联结库
 
你在客户端安装一个visual foxpro以后,在odbc中建立别名,
然后在sql server中建立链接服务器,把sql server中的所有数据
一次性倒入客户端。
当然上面说的这些步骤你通过编程在客户端完成。
 
sql server中建立链接服务器?这个好象只对服务器端有效吧?!要不就是联接服务器
需要写什么IP了机器名甚至还要有用户名密码什么的。这绝对更麻烦
 
datapump 工具
 
我说的是程序控制
 
呵呵。老兄对MS DTS和 LINK SERVER都了解。 看得出是位熟手。 自己费点事。写一个
吧。 技术上不麻烦。 半天到一天的功夫就写完了。

另外。不知你用过 DEV DxDbGrid 没有。 这个网格是我的最爱。 可以将内容直接输出
到EXCEL。 然后从 XLS 输出到 dbf 也行呀。 呵呵。 这个法子比较简单吧。我这么干
了好几次了。 dxdbGrid1.SaveToXLS('c:/aaa.xls',true);
 
select * into a.dbf in '' [ODBC设置] from table1
 
我曾经这样干过
把SQL SERVER中的数据通过查询语句查出来,然后转入DBF(自动生成表的结构)中在把dbf表上传到代理服务器,
在用ASP编代码把dbf中的数据添加到服务器中的access中
(因为服务器不允许上传mdb文件),我靠,简直是浪费生命
关注
 
非要用DBF吗?,好多数据类型都不支持的。
用PARADOX行吗?我的程序就是用datapump 工具在PARADOX和SQL SERVER之间倒来倒去。
 
duancy:没看前面?我可不想自己给自己找麻烦:-)
王寒松:DEV DxDbGrid 也是我爱,呵呵,不过有个中间过程,况且要命的是DBF要求各个字段
的长度都有规定,EXCEL转过去就难说了。。。。
TO 各位:其实呢这个问题本身不是为了解决我的项目问题,我已经用我前面说的方案实现了
就是想听听大家有没有好的方法,更方便。就好比DEV的GRID一样提供
直接把数据转成DBF的途径。类似PB的数据窗口的存为DBF文件。

 
netkk兄:你那句话不是很懂,IN ''[ODBC设置]是什么意思,好像INTO A.DBF 不合VFP SQL
语法吧?应为INTO TABLE A.DBF才对吧.
 
不过INTO TABLE A.DBF这段好像不起作用
 
我爱PASCAL:
etkkS说的意思是在利用MS SQL的语法操作异构数据库
不过还是需要在数据库服务器端做ODBC设置,而且需要安装FOXPRO,而我的方案都要求更简单
 
后退
顶部