test.mdb 表:user cname char(10) cpwd(10)
test.dbf 表:test cname char(10) cpwd(10)
将test表中的数据导入test.mdb(user)中。
local lnHandle
lnHandle = sqlstringconnect("Driver={Microsoft Access Driver (*.mdb)};dbq=d:/test.mdb;")
* lnHandle = sqlstringconnect("driver = {SQL Server};server=<servername>;uid=<userid>;pwd=<password>") &&SQL SERVER连接字符串
= sqlexec(lnHandle,"Select * From user","Temp1")
select temp1
*SET MULTILOCKS ON
cursorsetprop("buffering",5) && 设置表缓冲
append from test &&
cursorsetprop("tables","user","temp1") && 设置临时表的更新目标表
cursorsetprop("keyfieldlist",'cname',"temp1") && 设置临时表的关键字
cursorsetprop("updatablefieldlist","cname,cpwd","temp1") && 设置临时表的更新字段
cursorsetprop("updatenamelist","cname user.cname,cpwd user.cpwd","temp1") && 用gh中的相应字段更新rsda表
cursorsetprop("sendupdates",.t.,"temp1") && 设置为可更新
cursorsetprop("wheretype",2,'temp1')
tableupdate(.t.)
* tableupdate(.t.,.t.,'temp1')
sqlDisconnect(lnHandle)
注意:要先缓冲再添加数据。
感谢“都市夜猫”的指点:
缓冲就是vfp另外缓冲了一份原始拷贝
通常是先用 cursorsetprop 设置各种属性,然后再更改数据,也就是上面可以改为先 cursorsetprop,最后再 append 和发 tabelupdate
这篇博客介绍了如何使用Visual FoxPro(VFP)将数据从test.dbf表导入到Access MDB文件的user表中。通过设置SQL连接字符串、表缓冲、更新目标表、关键字、更新字段等步骤,实现数据迁移,并强调了缓冲的重要性。
254

被折叠的 条评论
为什么被折叠?



