/*=========================================================================== * 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() { //声明SQL变量 EXEC SQL BEGIN DECLARE SECTION; VARCHAR user[20],pass[20],tnsname[20]; //VARCHAR预编译后为struct { unsigned short len; unsigned char arr[20];} char ename[10]; int empno; EXEC SQL END DECLARE SECTION; //声明C变量 int i=0; //变量赋值 strcpy(user.arr,"NinGoo"); user.len=(unsigned short)strlen((char *)user.arr); strcpy(pass.arr,"password"); pass.len=(unsigned short)strlen((char *)pass.arr); strcpy(tnsname.arr,"dbname"); tnsname.len=(unsigned short)strlen((char *)tnsname.arr); //连接数据库 EXEC SQL CONNECT :user IDENTIFIED BY :pass USING :tnsname;
EXEC SQL declare emp_cursor cursor for select empno,ename from scott.emp; EXEC SQL open emp_cursor;
EXEC SQL WHENEVER NOT FOUND DO break;
while(1) { EXEC SQL fetch emp_cursor into :empno,:ename; printf("the empno %d\‘s name is %s\n",empno,ename); i=i+1; } printf("Yeah!We get %d records\n",i);
EXEC SQL close emp_cursor; EXEC SQL commit work release; }
| |