如何把远程sql库中的内容保存到本地的问题(100分)

  • 主题发起人 主题发起人 小争
  • 开始时间 开始时间

小争

Unregistered / Unconfirmed
GUEST, unregistred user!
我登录到远端的sql_sever服务器,怎样把库中的数据保存到本地库,可以
给我一个例子吗?email:zhengct@up369.com
 
使用BatchMove1呀!
 
最简单的就是用DELPHI所带的datadump.exe了
 
/Borland/Delphi5/Help/Examples/Batchmv
 
你可以建一个本地的数据库,例如我们可以建一个Paradox库:
建一个新的目录 C:/DATA,然后在BDE Administrator中建一个新的别名:L_DATA,
类型选择标准,接着如同zengr所说的,运行Delphi自带的datapump.exe程序,
Source Alias Names选择你所建的SQL SERVER的别名,Target Alias Names选择我
们刚刚新建的L_DATA,然后从左边的可选择数据表的列表中选择你想保存到本地的
表到右边的列表,选择好后单击Next,最后单击Upsize即开始传送数据。
 
/Borland/Delphi5/Help/Examples/Batchmv
你最好在本地也用SQLSERVER数据库(单机版),若用别的数据库(例如PARADOX),可能
有些数据类型不匹配。
 
用 BatchMove 可以:
设置好 Mode属性 ,有 batCopy ,batAppend ..
连接好 源表(远程服务器),目的表(本地,可用PARADOX),在某事件中执行:
Try
BatchMove1.Execute ;
Except
On Exception do
ShowMessage('数据库被锁定,数据转移失败,无法录入,请退出检查!');
end;
Have a Try ......
 
我同意 shangjintong 的看法,而我现在也正面临这样的问题:
远程服务器我用SQL,本地我用Dbase表,而我也使用BatchMove编过程。
可是结果有些数据类型不匹配:保存到本地库数据有部分乱码,而记录个数也不匹配。

真希望哪位高手能帮我也解决这样的问题,非常急!!! 谢谢......
 
建一张表,随便用什么(如:pardox),结构和原sql表一样,数据类型基本一样。
然后读出sql表各记录的值,写入pardox就可以了。
程序如下:

SQLTable.First;
pardoxTable.First;
for i=0 to SQLTable.recordcount-1 do
begin
//第一个字段值
pardoxTable.FieldByName('field1name').As... :=
SQLTable.FieldByName('field1name').As... ;
//第二个字段值
pardoxTable.FieldByName('field2name').As... :=
SQLTable.FieldByName('field2name').As... ;
//第三个字段值
......
SQLTable.next;
pardoxTable.next;
end;

end;
 
如果是想提高速度,最好放在一个内存表中。
写库又费时间了。
 
问题解决了,谢谢大家。
 
后退
顶部