在用BATCHMOVE控件时遇到的一个问题(100分)

  • 主题发起人 主题发起人 jobsxy
  • 开始时间 开始时间
J

jobsxy

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要在ACESS和SQL SERVER之间导数据,用BATCHMOVE并设置属性为AppendUpdate模式,
这两个文件之间都有关键字GDSCODE,并且都建立了索引。我也照帮助所说,在
TABLE1,TABLE2加上了索引,可在执行时却偏偏说目标文件没有索引,即SQLSERVER那个
TABLE没有,我可是明明加上了的。

如果把BatchMove属性改为Append或Copy则什么问题都没。

 
Table2.indexname:=你的索引名
你有没有加上呀
还有呀,batchmove最好不要用这种模式吧?应该不快的
可以自己处理比较好一点
MySQL中比较简单,有一个Replace语句,可以完成此功能
如果存在则更新,否则插入
好像SQL Server没有
 
唉,我试过,自己处理速度太慢了。
 
sql server 有个倒入程序
你可以手动到来到去
当然也可以用程序来控制
速度很快
在sql server下有示类程序
不过是用vb语言的
很容易懂得
 
直接用SQLSERVER的导入工具,很简单的
 
可我需要通过编程完成导入导出,DELPHI如何搞入SQL SERVER的导入工具呢?
如果要手动,我不如用datapump得了。
 
用SQL语句
SQL SERVER=>ACCESS
INSERT INTO OPENROWSET(...) SELECT * FROM ...
ACCESS=>SQL SERVER
INSERT INTO ... SELECT * FROM OPENROWSET(...)

OPENROWSET
包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,
这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊
的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。
依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE
语句的目标表。

 
QuickSilver:你所说的办法我很感兴趣,可我手上没有OPENROWSET函数的用法,
能否给说明一下,最好举个例?然后这分就是你的了。
 
sql server的帮助中有详细的说明
在大富翁的历史数据中也有很多这方面的资料
你可以参考一下
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1235719

 
多人接受答案了。
 
后退
顶部