用odbc nhandle=sqlstringconnect("driver=sql server;server=服务器名;uid=用户名;pwd=password;database=数据库名")&&建立连接句柄 if nhandle>0 and sqlexec(nhanle,"")=1 cSql="update bom set bom.数量=26.58 where 编号='"+cId+"'" sqlexec(nhandle,csql) else messagebox("无法连接到服务器!") endif
odbc我知道!关键是在vfp里怎么操作呀!我都快急死了!
写错了。其中的 cSql="update bom set bom.数量=26.58 where 编号='"+cId+"'" 改为 cSql="update bom set bom.数量=26.58 where 编号='"+"?"+cId+"'" 因为vfp的变量作为一个参数假如不带上?,当传输到sqlserver上会是一个不合格的语句。
好事做到底,那有这方面的资料呀!
<>谢谢了!
我的qq号!57859905
nhandle=sqlstringconnect("driver=sql server;server=服务器名;uid=用户名;pwd=password;database=数据库名")&&建立连接句柄
if nhandle>0 and sqlexec(nhanle,"")=1
cSql="update bom set bom.数量=26.58 where 编号='"+cId+"'"
sqlexec(nhandle,csql)
else
messagebox("无法连接到服务器!")
endif
cSql="update bom set bom.数量=26.58 where 编号='"+cId+"'"
改为
cSql="update bom set bom.数量=26.58 where 编号='"+"?"+cId+"'"
因为vfp的变量作为一个参数假如不带上?,当传输到sqlserver上会是一个不合格的语句。
具体项目条件和我联系,
[email protected]
57859905
例你可以通过活动视图spt,跟远程视图差不多。就是通过一个中间集合来更新远程数据。也可以直接操作远程数据库。
例:
直接操作数据库
在连接建立后,sqlexec(nhandle,"insert into tablename(bh) value('qaaa')")
这样就在sqlserver上的tablename的bh列加了一条记录。向远程数据库取数据
sqlexec(nhandle,"select bh from tablename","cursorname")
就把生成的结果放到临时表cursorname,名字可以自己取。
其中生成的cursorname是不可更新的。在客户端的操作结果不能反映到远程。还要设置另外一些属性。
我的email:[email protected]
qq不让上。to zhudexiang:
对,都是被你害的。直接copy了一下。呵呵
1。设置视图可更新字段。
2。对远程视图操作。
3。if tableupdate(.t.) then
&&更新成功后的处理
else
&&更新成功后的处理
tablerevert(.t.) endif
注意:发送sql更新打钩:即:DBSETPROP("viewname", "View", "SendUpdates", .T.)
方法二:用SPT.优点:速度很快。缺点:代码量很大。《较复杂》
1。connect to database server:
public handle
handle=sqlstringconnect("driver={sql server};database=...;server=servername;uid=sa;pwd="..")
2.data access:
local succ
succ=sqlexec(handle,"sql statements")
if succ<=0 then
&& error manager
else
&& success
endif &&
endif
3.disconnect to database :
sqldisconnect(handle)方法三:用ado.优点:游标(动态、静态、前滚、键盘)可灵活应用的,速度比SPT快。
缺点:象grid等控件不支持ado<VFP7.0>也无改善。用OLEDB也不好用。
public conn1
conn1=createobject(adodb.connectiong)
conn1.open("server=driver={sql server};database=...;server=servername;uid=sa;pwd="..")
conn1.execute("sql statement")
conn1.close()
release conn1
除非你要用到一些需要绑定ADO数据集控件,可以考虑使用。
点左边的系统功能,你就找到了。