powerbuilder 中的可以直接使用 select a,b,c into :a,:b,:c from table where id = :id ;这样的脚本直接获取数据库的数据。
在C++builder中的如何实现呢?
1.C++builder 中的函数设计
int a,b,c
int id = 100 ;
String sql = "select a,b,c into :d,:d,:d from table where id = %d"
function int db_select(String sq,...)
{
1.统计 into ... from 之间的 [out]类型的变量地址,保存类型,和内存地址 TVarRec* pVar生成数组
2.获取[id]类型的参数,Var_arg各个类型的实际数据
3.从新生成SQL语句
4.查询数据库,
4.1赋值Pvar数组的值
}
实际要完成的代码如下
int a,b,c
int id = 100 ;
int ret =db_select("select a,b,c into :d,:d,:d from table where id = %d",&a,&b,&c,id) ;
[out]类型变量,函数传入变量的地址,:d表示number类型数据
[id] 类型变量,传入的是实际值,可以根据%d标识,使用va_arp(ap,int) 来获取直接数据。