用VC开发Oracle数据库应用程序详解
2007-05-12 12:27:23 来源:WEB开发网提供了较强的异常处理功能。
由此可见,通过预编译程序与其它高级语言的结合,既可以利用SQL强有力的功能和灵活性为数据库应用系统的开发提供强有力的手段,又可以充分利用高级语言自身在系统开发方面的优势,从而提供一个完备的基于Oracle数据库应用程序的开发解决方案。
2.在VC中使用PRO*C
每个PRO*C源文件一般由程序头和程序体两部分组成。程序头包含宿主变量(SQL语句中所包含的变量)说明、通讯区定义和C外部表示符的说明等。程序体一般是由若干函数组成,这些函数内含有SQL语句(以EXEC SQL起头的语句)。
PRO*C支持的数据类型包括:VARCHAR2(变长字符串)、NUMBER(二进制数)、INTGER(有符号整数)、FLOAT(浮点数)、STRING(以NULL结尾的字符串)、VARNUM(变长二进制数)、 LONG(变长字符串)、VARCHAR(变长字符串)、ROWID(二进制值)、DATE(定长日期/时间值 )、VARRAW(变长二进制数据)、RAW(定长二进制数据) 、LONGRAW(变长二进制数据)、UN SIGNED(无符号整数)、LONGVARCHAR(变长字符串)、LONGVARRAW(变长二进制数据)、CHA R(定长字符串)、CHARZ(C中定长以NULL结尾的字符串)、MLSLABEL(变长二进制数据)。
在PRO*C中不能使用‘l’或‘u’作词尾或‘0x’作词头修饰常量;在SQL语句中使用单引号来定义字符串,用双引号来定义特殊的或小写字符的标识符(如表名等);SQL语句中不允许使用C中的寻址、间接、位逻辑、复合赋值、?=、--、++、%、<<、>>操作符,并且用NOT、AND、OR、=来分别代替!、&&、||、==。
下面的程序是一个连接数据库的PRO*C源程序例子。 ____#include //声明SQL通讯区
____#include
____#include
____EXEC SQL BEGIN DECLARE SECTION;
____VARCHAR username[20]; //声明宿主变量
____VARCHAR password[20];
____VARCHAR dbname[20];
____EXEC SQL END DECLARE SECTION;
____void db_connect()
____{
____strcpy((char *)username.arr,"SCOTT");
____username.len = strlen((char *)username.arr);
____strcpy((char *)password.arr,"TIGER");
____password.len = strlen((char *)password.arr);
____strcpy((char *)dbname.arr,"SUNDB");
____dbname.len = strlen((char *)dbname.arr);
____EXEC SQL WHENEVER SQLERROR STOP;
____//隐式异常处理
____EXEC SQL CONNECT :usernameIDENTIFIED BY :password USING :dbname;
____/*if (sqlca.sqlcode != 0) //显式异常处理
____{
____AfxMessageBox("
与 Oracle 数据库连接失败!");
____return;
____}*/
____}
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接