vfp spt连接mysql_vfp如何使用spt

spt的全称为sql pass through,它是和远程视图构成了vfp处理远程数据的利器。和远程视图比较,它的主要好处在于灵活,可以直接连接远程数据库,并在服务器上执行代码代码, 当然它也可以和远程视图一样,通过一个光标cursor来更新远程数据,缺点主要是非图形化,代码量大。实际上远程视图是SPT的一个子集。

步骤:

1、建立连接,或者连接句柄

如连接服务器为aa,用户名为bb,密码为cc,数据库为dd

nhandle=sqlstringconnect("driver=sql server;server=aa;uid=bb;pwd=cc;database=dd")

if nhandle>0

messagebox("数据库连接成功!",0,"提示")

else

messagebox("数据库连接成功!",0,"提示")

endif

2、如何向服务器取数据

如向服务器表employees查询性别为男的人员

在步建立和服务器数据库的连接,并取得连接句柄nhandle后

sqlexec(nhandle,"select * from employees where sex='男'","employees")

select employees

brow

也可以调用系统上的存储过程来取得数据.

如在服务器建立存储过程

create proc getmanofworkes

as

select * from employees where sex='男'

go

然后在vfp里调用

sqlexec(nhandle,"exec getmanofworkes",employees)

select employees

brow

当然也可以想存储过程传递参数查询

仍然以刚才的例子,查询不同性别的员工

在服务器上建立create proc getemployees

@sex char(2)='男'

as

select * from employees where sex=@sex

go

vfp里调用

查询男员工

csex='男'

sqlexec(nhandle,"exec getemployees ?sex",'employees')

select employees

brow

查询女员工

csex='女'

sqlexec(nhandle,"exec getemployees ?sex",'employees')

select employees

brow

设置本地表可更新服务器表

sqlexec(jb,"select id,bh,hyzhm,fzdw,rghsj,ghzrsj,xm,xb,gs_bm from rsda where lcbj=0 order by gbbh","gh")

***设置gh可更新rsda表

sele gh

cursorsetprop("tables","rsda","gh") &&设置临时表的更新目标表

cursorsetprop("keyfieldlist",'id',"gh") &&设置临时表的关键字

cursorsetprop("updatablefieldlist","id,fzdw,rghsj,ghzrsj,hyzhm","gh")&&设置临时表的更新字段

cursorsetprop("updatenamelist","id rsda.id,hyzhm rsda.hyzhm,rghsj rsda.rghsj,ghzrsj rsda.ghzrsj,fzdw rsda.fzdw","gh") &&&用gh中的相应字段更新rsda表

cursorsetprop("sendupdates",.t.,"gh")&&设置为可更新

cursorsetprop("wheretype",2)

cursorsetprop("buffering",5)&&设置表缓冲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值