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()
{
     //聲明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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章