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) 来获取直接数据。
本文探讨了如何在C++builder环境中实现类似于PowerBuilder中的直接SQL数据获取功能。通过创建一个函数db_select,该函数接受SQL模板字符串和参数,动态构造SQL语句,并将查询结果直接赋值给传出参数。示例代码展示了如何处理[out]和[id]类型的变量,实现了从数据库查询数据并将结果赋值给inta,b,c。这个过程涉及到SQL语句的构建、参数处理和数据库查询操作。
866

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



