當前位置:編程學習大全網 - 編程語言 - c++程序如何讀取ORACLE表中的字符串?

c++程序如何讀取ORACLE表中的字符串?

我以前自己寫的:

/* Exam01。用PC開發Oracle接口程序實例*/

/*說明:本程序介紹了用PROC開發Oracle庫接口的編程特點。通過向AUTHS報告

*輸入寫手代碼,查詢寫手姓名和工資表。在運行之前,應該建立表,應該插入和提交數據。*/

# include & ltstdio.h & gt

# include & ltstring.h & gt

# include & ltstdlib.h & gt

/*包含SQL通信區域,用於處理錯誤。*/

# include & ltsqlca.h & gt

void connect();/*連接到Oracle服務器*/

void disconnect();/*與Oracle服務器斷開連接*/

void SQL _ error(char *);/*處理錯誤句柄*/

void select();/*查詢子程序*/

extern sqlglm(char *,int *,int *);

/*主程序*/

void main()

{

/*安裝錯誤處理句柄*/

exec SQL when never SQL error do SQL _ error(" Oracle error-\ n ");

/*連接到數據庫*/

connect();

/*執行查詢*/

select();

/*斷開數據庫*/

disconnect();

}

/*子程序*/

/*連接子例程connect() */

無效連接()

{

EXEC SQL BEGIN DECLARE部分;

VARCHAR用戶名[10],密碼[10],服務器[10];

EXEC SQL END DECLARE部分;

/*輸入用戶名、密碼和服務器名*/

printf(" \ n輸入用戶名:");

獲取(username . arr);

username.len=(無符號短整型)strlen((char *)username . arr);

printf(" \ n輸入密碼:");

獲取(password . arr);

password.len=(無符號短整型)strlen((char *)password . arr);

printf(" \ n輸入服務器名稱:");

獲取(server . arr);

server . len =(unsigned short)strlen((char *)server . arr);

/*連接到Oracle服務器*/

EXEC SQL CONNECT:用戶名由標識:密碼使用:server

printf(" \ n以用戶%s的身份成功連接到服務器%s!\n ",username.arr,server . arr);

}

/*斷開子例程()*/

無效斷開()

{

炭化溫度;

printf(" \ n在斷開連接之前提交所有事務嗎?(Y/N)");

scanf("%c ",& amptemp);

fflush(stdin);

if(temp!= ' Y ' & amp& amp臨時工!= 'y ')

{

/*回滾事務並斷開連接。*/

EXEC SQL回滾工作發布;

printf(" \ n回滾事務,斷開連接並退出程序!\ n \ n ");

}

其他

{

/*提交事務並斷開連接。*/

執行SQL提交工作發布;

printf(" \ n提交交易,斷開連接並退出程序!\ n \ n ");

退出(1);

}

}

/*查詢子例程select()

*首先輸入寫手代碼,然後查詢寫手姓名和工資。*/

無效選擇()

{

EXEC SQL BEGIN DECLARE部分;

char author_code[8],name[10];

浮動工資;

短薪_ ind

EXEC SQL END DECLARE部分;

printf(" \ n輸入編寫器代碼:");

獲取(author _ code);

/*查詢作者姓名和工資*/

EXEC SQL SELECT姓名,薪金INTO:姓名,:薪金:薪金_ind

來自授權

其中作者代碼=:作者代碼;

/*根據指標變量的值確定寫手的工資是否為空。*/

if (salary_ind ==0)

{

printf(" \ n作者代碼\ t作者姓名\ t作者薪金\ n ");

printf("-\ t-\ t-\ n ");

printf("%8s\t%8s\t%8.2f\n ",作者_代碼,姓名,工資);

}

其他

{

Printf("作家%s的工資沒有錄入,為空!\n ",名稱);

}

}

/*錯誤處理子例程sql_error() */

void sql_error(char *msg)

{

char err _ msg[128];

size_t buf_len,msg _ len

/*出現SQL錯誤,繼續執行。*/

每當SQLERROR繼續時執行SQL

printf("\n%s\n ",msg);

buf _ len = sizeof(err _ msg);

/*調用函數sqlglm()以獲得錯誤消息。*/

sqlglm(err _ msg & amp;buf _ len & amp;msg _ len);

printf("%。*s\n ",msg_len,err _ msg);

/*回滾事務,斷開連接並退出程序。*/

EXEC SQL回滾發布;

退出(EXIT _ FAILURE);

}

  • 上一篇:紅色cmyk色值為多少(正紅色CMYK值)
  • 下一篇:汽車主機廠對供應商要求的培訓課程
  • copyright 2024編程學習大全網