Pro*c 的简单例子
/*===========================================================================
* pro*c 编译方法:
* 预编译 proc test.pc
* 编译 gcc -o test test.c $ORACLE_HOME/lib/libclntsh.so
* 作者 NinGoo
* 时间 2005-6-14
*============================================================================*/
#include <stdio.h>
EXEC SQL INCLUDE SQLCA;
int main()
{
8 8 8//声明 SQL 变量
8 8 8EXEC SQL BEGIN DECLARE SECTION;
8 8 8VARCHAR user[20],pass[20],tnsname[20];
8 8 8//VARCHAR 预编译后为 struct { unsigned short len; unsigned char arr[20];}
8 8 8char ename[10];
8 8 8int empno;
8 8 8EXEC SQL END DECLARE SECTION;
8 8 8
8 8 8//声明 C 变量
8 8 8int i=0;
8 8 8
8 8 8//变量赋值
8 8 8strcpy(user.arr,"NinGoo");
8 8 8user.len=(unsigned short)strlen((char *)user.arr);
8 8 8strcpy(pass.arr,"password");
8 8 8pass.len=(unsigned short)strlen((char *)pass.arr);
8 8 8strcpy(tnsname.arr,"dbname");
8 8 8tnsname.len=(unsigned short)strlen((char *)tnsname.arr);
8 8 8
8 8 8//连接数据库
8 8 8EXEC SQL CONNECT :user IDENTIFIED BY :pass USING :tnsname;
8 8 8EXEC SQL declare emp_cursor cursor for
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 88 8select empno,ename from scott.emp;
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
8 8 8EXEC SQL open emp_cursor;