sqlapi 使用心得(二)

 

sqlapi 传递参数的方法

这次我们看一个插入的例子,如果我们想执行一条插入指令,那么valuse();中的值是从别的变量中获得的怎么办,sqlapi提供了一个方法,我们看下面这个例子:

我们修改SACommand 对象构造方法的参数,SACommand对象的构造方法有两个参数 一个是链接对象的地址(这里是&con),另一个事一条sql语句,并且这个sql语句是以字符串的形式传递的

SAConnection con; // 连接数据对象

con.Connect("orcl", "hr", "hr", SA_Oracle_Client); //connect对象不变

SACommand cmda(&con,"insert into state(pressure,A) values(:1,:2)");

这里使用了:1和:2 这是传递可变参数的地方。还有更多的字段,那么继续加,并且可以不按顺序来,比如:1:3:4:2…… 这里 这个cmda对象构造方法的参数就传递好了,而给:1,:2赋值则需要在执行cmd.Execute();执行命令之前赋值,方式如下:

cmda.Param(1).setAsUShort() = value;              //value是自己定义的变量 类型为int
cmda.Param(2).setAsString() = dtValue;            //dtValue也是自己定义的变量 类型为char[]

这里可以看到cmda.Param(2).setAsString() 这里有个2 上面的那个有个1 这就是给:2和:1传递参数的方法,具体Param()是SACommand类里面的成员变量还是别的我没有看到源代码,咱们暂时先不用去管它。而后面的setAsUShort()等方法具体哪个类型的参数对应哪个方法参见:http://www.sqlapi.com/OnLineDoc/Param.html

这里千万要注意不同的数据类型对应不同的方法,如果用错了 那么执行语句就不会成功,并且给:1 …赋值一定要在执行语句之前赋值,否则执行也不会成功。

由于这个库在不断更新(主页下方有版本号和对应的修改), 因此数据类型可能还会变动,这个到底如何我还只是猜测,毕竟我不是参与开发这个库的,但是我是在最近刚刚使用到(09年八月),因此看到的文档还是最新的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值