/*=========================================================================== * 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; }
|
|