Pro*C SQLDA 结构体
--摘自 《Oracle Pro*C 程序开发》 --Create/Modify Email:xingchengli@gmail.com
SQLDA 的结构如下:
struct SQLDA
{
long N; /* Descriptor size in number of entries */
char **V; Ptr to Arr of addresses of main variables */
long *L; /* Ptr to Arr of lengths of buffers */
short *T; /* Ptr to Arr of types of buffers */
short **I; * Ptr to Arr of addresses of indicator vars */
long F; /* Number of variables found by DESCRIBE */
char **S; /* Ptr to Arr of variable name pointers */
short *M; /* Ptr to Arr of max lengths of var. names */
short *C; * Ptr to Arr of current lengths of var. names */
char **X; /* Ptr to Arr of ind. var. name pointers */
short *Y; /* Ptr to Arr of max lengths of ind. var. names */
short *Z; /* Ptr to Arr of cur lengths of ind. var. names */
};
SQLDA结构成员作用描述:
名称 描述
N SELECT-LIST列或占位符的最大数量,执行DESCRIBE前必须执行
SQLSQLDAAlloc()函数给N进行赋值,设定描述数组的维数,其决定了描述字结构成
员数组的最大元素个数。在DESCRIBE命令后,必须将存储在F中的变量真实个数赋
值给N。
V 是一个指向一个地址数组的指针,在该数组中存储SELECT-LIST列值或绑定变
量的值。当使用SQLSQLDAAlloc函数时,系统给V[0]到V[n-]赋值为0。在使用select
descriptors时,必须在FETCH语句前,给V指针数组分配内存空间,应为下列语句要
用到两种描述字具体的值:
EXEC SQL FETCH ... USING ‘select descriptors’
对于bind descriptors,必须在OPEN语句前分配空间
EXEC SQL OPEN ... USING ‘bind descriptors’
L L是一个指向存放select-list或bind-variable变量值长度数组的指针。对于select
descriptors,DESCRIBE SELECT LIST语句设置数组中各元素的值,对不在select-list
的对应长度设置成该类型的可的定义的最大长度。在FETCH语句前,用户可能需要
重新修改变量长度,比如为了显示原因,需要将NUMBER类型数据存储到C语言char[]
类型,就需要通过SQLNumberPrecV6()函数得到NUMBER长度,然后转换成字符串
后的真实长度。
对于bind descriptors,用户必须在OPEN语句前,给数组成员赋对应V变量成员
相关文档:
VC中下面几个结构体大小分别是多少呢
struct MyStruct
{
double m4;
char m1;
int m3;
};
struct MyStruct {
  ......
数字转字符串:
用C++的streanstream:
#include <sstream>
#Include <string>
string num2str(double i)
...{
stringstream ss;
ss<<i;
return ss.str();
......
一位ID为ultimus的程序员开发了一种名为anic的新语言,近日引起业界关注。根据Google Code上该项目的简介,该语言的正式名称是ANI,anic是这种语言的参考实现。
ANI是一种实验性、高性能、静态安全、完全隐含支持并行、面向对象的通用数据流编程语言。
anic用GNU工具链写成,因此可移植性很好,可以运行于所有主流操作系 ......