WEB开发网
开发学院数据库Oracle DM API和OCI编程方式比较 阅读

DM API和OCI编程方式比较

 2008-09-03 12:50:56 来源:WEB开发网   
核心提示: 3. 参数绑定a) API在连接建立以后,申请完语句句柄就可以执行SQL语句了,DM API和OCI编程方式比较(3),但是如果你的语句中带有参数,那么你可能还需要对参数进行绑定后才能执行,也可以说是精度*/unsignedshortdec_digit,/*in:列的刻度*/void*va

3. 参数绑定

a) API

在连接建立以后,申请完语句句柄就可以执行SQL语句了,但是如果你的语句中带有参数,那么你可能还需要对参数进行绑定后才能执行。在API中,SQL中的参数是以?号形式表现的,在绑定时需要调用dm_bind_paramr函数接口来实现。dm_bind_param函数绑定的时候是按给定的参数位置来跟语句中的参数建立对应关系的,该函数第二个参数便是参数的位置,也就是对应?号所在SQL语句中的位置。下面给出该函数中每个参数的注解:

   dm_bool
  dm_bind_param(
  dm_hstmtdmstmt,/*in:用来执行的语句句柄*/
  unsignedshortparamid,/*in:参数的位置*/
  unsignedshortiotype,/*in:参数的类型(输入/输出/输入输出)*/
  longsql_c_type,/*in:参数的C数据类型(缓冲区中存的值的类型)*/
  unsignedlongtype,/*in:参数对应数据库中达梦的数据类型*/
  dm_uint3264col_size,/*in:列的大小,也可以说是精度*/
  unsignedshortdec_digit,/*in:列的刻度*/
  void*value,/*in:缓冲区指针*/
  dm_int3264len,/*in:缓冲区中单个值的长度,这个参数对于固定数据类型来说是被忽略的*/
  dm_int3264*len_or_ind,/*in:要写入单个值的长度*/
  unsignedshortptr_len/*in:len_or_ind参数的大小*/
  );
  下面我们列举一个带参数的SQL语句如何绑定:
  intc1;
  charc2[100];
  dm_int3264len1,len2;
  //绑定第一个问号参数
  dm_bind_param(dmstmt,1,DM_PARAM_INPUT,TYPE_INTEGER,DM_DATA_INT,10,0,&c1,0,&len1,DM_DESC_PTR_LEN_DEFAULT);
  //绑定第二个问号参数
  dm_bind_param(dmstmt,2,DM_PARAM_INPUT,TYPE_CHAR,DM_DATA_CHAR,100,0,c2,100,&len2,DM_DESC_PTR_LEN_DEFAULT);
  //下面对要插入的参数赋值
  c1=1;
  len1=4;//值c1的大小,按字节计算
  memset(c2,‘a’,100);
  len2=100;//参数c2的大小,按字节计算
  //执行带参数的语句,执行完成以后1和’aaa..’就会被插入到表t的c1和c2字段中
  dm_direct_exec(dmstmt,“insertintot(c1,c2)values(?,?)”);

上一页  1 2 3 4 5 6  下一页

Tags:DM API OCI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接