Pro*C/C++ windows編程

來源:互聯網
上載者:User

Pro*C/C++ windows編程

 

來源:phoenix.yuwen 2005-11-21

[1]先建立一個winproc.pc檔案

在裡面把和oracle資料庫相關的操作寫成類和函數

先行編譯時注意:

先行編譯設定項中要修改 CODE,PARSE,CPP_SUFFIX

1:CODE選CPP

2:PARSE選none或partial

3:CPP_SUFFIX選cpp

[2]先行編譯成功後產生winproc.cpp檔案

將該檔案改成標頭檔winproc.h匯入你的工程當中

在工程開發程式中引用winproc.h中的類和函數進行對資料庫的操作

 

下面是我寫的一個winproc.pc檔案

#include <iostream.h>

#include <string.h>

#include <stdlib.h>

#include <stdio.h>

#include <sqlca.h>

#include <afxwin.h>

 

#include <oraca.h>

 

EXEC ORACLE OPTION (RELEASE_CURSOR=YES);

 

EXEC SQL INCLUDE sqlca;

/*sql變數聲明*/

EXEC SQL BEGIN DECLARE SECTION;

 

EXEC SQL END DECLARE SECTION;

 

class oracle_proc

{

       public:

       void connect_oracle();

       void select_sql();

       void sql_error();

};

void oracle_proc::connect_oracle()

{

       /*以user:system/manager 登入資料庫*/

       EXEC SQL CONNECT :"scott" IDENTIFIED BY :"scott";

       /*登入不成功時*/

       if(sqlca.sqlcode<0)

       {

              AfxMessageBox(sqlca.sqlerrm.sqlerrmc);

              EXEC SQL ROLLBACK WORK RELEASE;       

       }

       /*串連成功時*/

       else

       {

              AfxMessageBox("/nConnected to Oracle!/n");                                

       }

 

};

void oracle_proc::sql_error()

{

       AfxMessageBox("some error …");

};

void oracle_proc::select_sql()

{

       /*sql語句賦值為insert語句*/

       EXEC SQL BEGIN DECLARE SECTION;

       char temp[20];

       EXEC SQL END DECLARE SECTION;

      

       /*執行sql*/

       EXEC SQL SELECT DNAME INTO :temp FROM SCOTT.DEPT WHERE DEPTNO = '28'; 

       EXEC SQL COMMIT WORK RELEASE;

       /*輸出sql語句*/

       AfxMessageBox(temp);

};

先行編譯後產生winproc.cpp

再建立一個MFC程式,把標頭檔winproc.h匯入到工程裡,要記得添加庫檔案oraSQL8.lib

在裡面做個實驗看看:

void CTestProcDlg::OnButton1()

{

       // TODO: Add your control notification handler code here

       oracle_proc ora;

       ora.connect_oracle();

       ora.select_sql();

       //ora.sql_error();

}

結果看到通過MFC+Pro*C/C++我們做到了直接存取oracle資料庫,而且整個過程很簡單,

Oo^____^oO

有問題一起討論

Email:yuwen05@126.com

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.