⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1796.html

📁 著名的linux英雄站点的文档打包
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<br>
·max_vars:查询列表项或占位符的最大个数。<br>
<br>
·max_name:查询列表项名称或占位符名称的最大长度。<br>
<br>
·max_ind_name:占位符指示变量名称的最大长度。<br>
<br>
4)设置DESCRIBE命令所对应的查询列表项或占位符的最大个数<br>
<br>
这一步用于设置DESCRIBE命令可以描述的查询列表项或占位符的最大个数。<br>
<br>
5)将SQL语句存储到宿主字符串中<br>
<br>
这一步用于接收SQL语句,并将SQL语句保存到宿主变量中。<br>
<br>
6)使用PREPARE命令准备动态SQL语句<br>
<br>
这一步用于命名和解析SQL语句。<br>
<br>
7)使用DECLEAR命令定义游标<br>
<br>
8)使用DESCRIBE命令获取绑定变量信息<br>
<br>
DESCRIBE BIND VARIABLES命令用于将占位符信息存储到绑定描述区中。<br>
<br>
9)重新设置占位符个数<br>
<br>
这一步是将DESCRIBE命令获取到的实际占位符个数设置为变量N的值。<br>
<br>
10)为绑定变量分配内存并输入数据<br>
<br>
如果存在绑定变量占位符,那么应用程序必须为其赋值并分配内存。<br>
<br>
11)打开游标<br>
<br>
12)使用DESCRIBE命令获取查询列表信息<br>
<br>
如果动态SQL语句是SELECT语句,我们还必须使用DESCRIBE SELECT LIST命令将查询列表项的信息存储到查询描述区中。另外需要注意两点:<br>
<br>
·该命令将F设置为实际的查询列表数,如果SQL语句不是SELECT语句,则变量F被设置为0。<br>
<br>
·NUMBER值长度不可用,必须使用函数sqlprc()获取精度和标度。<br>
<br>
13)重新设置查询列表项<br>
<br>
这一步用于将DESCRIBE命令获取到的实际查询列表项个数设置为查询列表项的最大个数。<br>
<br>
14)重新设置每个查询列表项的长度和数据类型<br>
<br>
在使用FETCH命令获取查询列表项数据前,为显示结果可能需要重新设置某些元素的长度和数据类型。<br>
<br>
15)利用FETCH命令检索数据<br>
<br>
执行此命令后,数据被存储到了查询描述区中。<br>
<br>
16)获取并处理查询列表值<br>
<br>
在执行了FETCH命令后,可以通过数组V和数组I中的元素来处理检索到的数据。<br>
<br>
17)关闭游标<br>
<br>
在推进游标、检索完数据后,执行如下命令关闭游标:<br>
<br>
EXEC SQLCLOSE s_cursor;<br>
<br>
18)释放空间使用函数free()释放由函数malloc()所分配的内存,使用函数sqlclu()释放为查询描述区以及绑定描述区所分配的空间<br>
<br>
<br>
<br>
<br>
[目录]<br>
<br>
--------------------------------------------------------------------------------<br>
<br>
<br>
检测错误和状态改变<br>
<br>
在Pro*C/C++中,用于检测错误和状态改变的方法有如下两种:<br>
·定义状态变量SQLSTATE或SQLCODE,在执行了SQL语句后检查它们的值,并根据需要执行相应的操作。<br>
<br>
·使用SQLCA。SQLCA被定义在头文件sqlca.h中。<br>
<br>
在该程序中我们使用了SQLCA进行错误检测。关于SQLCA的详细描述请参阅第八章相关说明,这里不再累述。<br>
<br>
WHENEVER语句用于检测并处理错误,使用该语句的语法如下:<br>
<br>
EXEC SQL WHENEVER&lt;condition&gt;&lt;action&gt;<br>
<br>
1)条件(condition)<br>
<br>
Oracle可自动检测以下条件:<br>
<br>
·SQLWORING:当Oracle返回警告信息时会设置sqlworn[0]为“W”。使用该条件必须定义SQLCA。<br>
<br>
·SQLERROR:出现严重错误,此时SQLCODE为负值。<br>
<br>
·NOT FOUND:当Oracle不能找到满足条件的记录时SQLCODE被置为+1403。<br>
<br>
2)操作(action)<br>
<br>
当Oracle检测到以上条件时,应用程序可以执行如下操作:<br>
<br>
·CONTINUE:继续运行下一条语句。<br>
<br>
·DO:执行错误处理函数。<br>
<br>
·GOTO lable_name:转移到标号处执行。STOP:停止执行,回滚事务。<br>
<br>
<br>
<br>
<br>
[目录]<br>
<br>
--------------------------------------------------------------------------------<br>
<br>
<br>
SQLCA<br>
<br>
SQLCA是一个数据结构,它的成员包含了SQL语句执行后的错误、警告和状态信息。在ORACLE_HOMEpro80cinclude目录下的sqlca.h文件中定义了SQLCA结构。<br>
使用如下语句可以将SQLCA包含到应用程序中:<br>
<br>
EXEC SQL INCLUDE SQLCA;<br>
<br>
或 #include&lt;sqlca.h&gt;<br>
<br>
其部分结构成员如下:<br>
<br>
·sqlcaid:标识SQL通讯区的字符串成员,它被初始化为“SQLCA”。<br>
<br>
·sqlcabc:整数成员,用于保存SQLCA的字节长度。<br>
<br>
·sqlcode:整数成员,它保存着SQL语句执行后的状态代码。Sqlcode的值和含义见表8-1:<br>
<br>
<br>
<br>
Sqlcode的值<br>
<br>
含义<br>
<br>
<br>
0 执行SQL语句成功<br>
<br>
<br>
&gt;0 执行了该语句但检测到异常情况<br>
<br>
<br>
&lt;0 出现严重错误,语句没有执行<br>
<br>
·sqlwarn:用于设置警告标记的单字符数组,通过赋“W”来设置警告标记。<br>
<br>
·sqlerrm:包含了成员sqlerrml及sqlerrmc的一个结构,其中sqlerrml用于保存错误文本长度,sqlerrmc用于保存错误文本。<br>
<br>
Sqlerrmc最多可以保存70个字符的错误消息,使用函数sqlglm可以获得完整的错误消息文本,该函数的语法如下:<br>
<br>
voidsqlglm(char *message_buffer,size_t *buffer_size,size_t *message_lenth);<br>
<br>
参数说明如下:<br>
<br>
·message_buffer:存储错误消息的文本缓冲区(尾部以空格填充)。<br>
<br>
·buffer_size:缓冲区的字节长度。<br>
<br>
·message_lenth:错误消息的实际长度。<br>
<br>
注意,调用该函数前必须确保SQLCODE或sqlca.sqlcode不等于0。该函数只能用于非线程应用。<br>
<br>
SQLCA中还包括其它结构成员,包括sqlerrp、sqlerrd、sqlext等,由于这些成员的作用相对次要或在程序中没有使用,故这里暂不作介绍。<br>
<br>
<br>
<br>
<br>
<br>
[目录]<br>
<br>
--------------------------------------------------------------------------------<br>
<br>
<br>
SQLDA<br>
<br>
SQLDA结构的作用是处理和保存查询列表项以及宿主变量占位符的信息。<br>
当SQL语句所包含的查询列表项或绑定变量的个数不能确定时,我们就需要使用SQLDA结构来定义和描述查询列表项或绑定变量占位符。因此,该结构也被称为描述区,绑定变量列表所对应的绑定变量列表所对应的描述区就称为绑定描述区。<br>
<br>
SQLDA结构保存在ORACLE_HOMEpro80include目录下的sqida.h文件中。利用如下语句可以将该结构包含至应用程序中:<br>
<br>
EXEC SQL INCLUDE sqlda;<br>
<br>
尔后还要定义指向查询描述区和绑定描述区的指针:<br>
<br>
SQLDA *bind_dp;<br>
<br>
SQLDA *selectdp;<br>
<br>
该结构的内容如下:<br>
<br>
struct SQLDA<br>
{<br>
long N;<br>
char **V;<br>
long *L;<br>
short *T;<br>
short **I;<br>
long F;<br>
char **S;<br>
short *M;<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -