WEB开发网
开发学院数据库Oracle 用VC开发Oracle数据库应用程序详解 阅读

用VC开发Oracle数据库应用程序详解

 2007-05-12 12:27:23 来源:WEB开发网   
核心提示: 提供了较强的异常处理功能,由此可见,通过预编译程序与其它高级语言的结合,既可以利用SQL强有力的功能和灵活性为数据库应用系统的开发提供强有力的手段,又可以充分利用高级语言自身在系统开发方面的优势,从而提供一个完备的基于Oracle数据库应用程序的开发解决方案,用VC开发Oracle数据库应

提供了较强的异常处理功能。

由此可见,通过预编译程序与其它高级语言的结合,既可以利用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;
  ____}*/
  ____}

上一页  1 2 3 4  下一页

Tags:VC 开发 Oracle

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