ProC程序编程

ProC程序编程

ID:40563251

大小:58.00 KB

页数:7页

时间:2019-08-04

ProC程序编程_第1页
ProC程序编程_第2页
ProC程序编程_第3页
ProC程序编程_第4页
ProC程序编程_第5页
资源描述:

《ProC程序编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Pro*C程序编程(一)用Pro*C编写程序与在PB中直接用SQL语句类似,在PB中能用的SQL语法在ProC中同样适用,数据库能用的函数也都可以使用,所有的SQL语句都应符合Oracle的语法,只是多一些C语言中的语法和限制,下面是一个最简单的例子:/*****************************************************************//*程序开始,有一些需要包含的.H文件*/#include#ifdef_WIN32#defineDLLIMPORT__declspec(d

2、llimport)#defineDLLEXPORT__declspec(dllexport)#defineCDECL__cdecl#else#defineDLLIMPORT#defineDLLEXPORT#defineCDECL#endif#defineSQLCA_STORAGE_CLASSextern/*SQL没有记录的返回值*/#defineSQLNOTFOUND1403/*ProC必须在每一个程序中写的语句,SQLCA的大小写必须所有程序一致*/EXECSQLINCLUDESQLCA;EXECORACLEOPTION(RELEAS

3、E_CURSOR=YES);/*该语句可以在Makefile中写*//*有了下面的定义,就不需要进行变量类型的等价了VARISSTRING()*/EXECORACLEOPTION(CHAR_MAP=STRING);/*该语句可以在Makefile中写*/voidmain(){/*声明需要在SQL语句中使用的变量,这些变量在非SQL中也能使用*/EXECSQLBEGINDECLARESECTION;charszCodeName[41]="";/*CHAR变量的长度必须比数据库中大1*//*对VARCHAR类型必须进行等价说明,否则可能有空

4、格,或设置CHAR_MAP=STRING*/EXECSQLVARszCodeNameISSTRING(41);/*指示变量,必须是shortint类型,*/shortintindCodeName=0;/*与EXECSQLBEGINDECLARESECTION;成对使用*/EXECSQLENDDECLARESECTION;/*也可以不需要EXECSQLBEGIN/ENDDECLARESECTION;,在编译上控制*/strcpy(szConnectString,"jifei/jifei@jifei");/*连接数据库*/EXECSQLco

5、nnect:szConnectString;/*或EXECSQLCONNECT:szUserIDENTIFIEDBY:szPasswordusing:szDBString;*/if(sqlca.sqlcode!=0)/*判断SQL语句是否执行成功*/{printf("ConnectError,ErrorMessage:%s",sqlca.sqlerrm.sqlerrmc);exit(0);}EXECSQLselectcode_nameinto:szCodeNamefromCODE_NAMEwhererownum=1;if(sqlca

6、.sqlcode<0)/*判断SQL语句是否执行成功*/{printf("ConnectError,ErrorMessage:%s",sqlca.sqlerrm.sqlerrmc);EXECSQLrollbackworkrelease;exit(0);}if(sqlca.sqlcode==SQLNOTFOUND)/*没有结果,必须用SQLNOTFOUND,不要直接用1403*/{printf("NoDatatoFetch");EXECSQLrollbackworkrelease;exit(0);}printf("Code_Nam

7、e=%s.",szCodeName);/*提交并断开连接*/EXECSQLcommitworkrelease;}/************************************************************/一些基本的用法:1、VARCHAR2型变量的数据定义如果数据库中是varchar2型的字段,在Pro*C中类型定义成charszFieldName[n+1]如果在Makefile文件中的预编译参数中char_map=STRING则不需要进行类型等价,否则需要进行字符类型的等价定义:EXECSQLVAR

8、szFieldNameISSTRING(n+1);如不进行等价,则变量用空格填充。2、判断NULL值的方法在Pro*C中,如某一个字段是NULL值,sqlca.sqlcode是小于0的,所以对可能出现NUL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。