亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 7044 | 回復(fù): 2
打印 上一主題 下一主題

如何在VC++下集成使用Proc*C/C++(原創(chuàng)) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2004-05-25 11:55 |只看該作者 |倒序?yàn)g覽
我想很多人在VC下連接Oracle數(shù)據(jù)庫時(shí),一般使用ODBC或ADO控件,而使用Proc*C/C++應(yīng)該會(huì)比較少。并且我在網(wǎng)上搜索了一下,關(guān)于這方面的介紹也不多。本人也是因工作需要而使用它,在對此一無所知的情況下,十分感謝“時(shí)代朝陽數(shù)據(jù)庫技術(shù)中心”:
http://www.xiaotong-db.com.cn/kfgj/oracle/kfgj/O8I_proc_jc_vc.htm
給了我啟發(fā)。現(xiàn)在把本人的經(jīng)驗(yàn),貼出來讓大家分享(以下是圍繞著產(chǎn)生cpp文件來說明的)。
1、設(shè)置目錄:
    打開“tools->;Options”,轉(zhuǎn)到“Directories”頁,在"Show Directories for"中
       1)選“Executable Files”,在列表中加入proc.exe的目錄(ORACLE_HOME\bin):
      如:D:\oracle\ora81\bin
       2)選“Include Files”,在列表中加入proc*c/c++包含頭文件的目錄(ORACLE_HOME\PRECOMP\PUBLIC):
      如:D:\ORACLE\ORA81\PRECOMP\PUBLIC
        3)選“Library Files”,在列表中加入proc*c/c++ Lib所在的目錄(ORACLE_HOME\PRECOMP\LIB\MSVC):
      如:D:\ORACLE\ORA81\PRECOMP\LIB\MSVC
        *注:我的oracle客戶端程序是安裝在D:\oracle\ora81下;
2、建立一MFC工程(這步在此不作介紹);
3、往工程中加入,Proc*c/c++的源和頭文件(這步在此也不作介紹),例加入oratools.pc、oratools.h;
oratools.h

  1. #ifndef __LZP_ORACLE_TOOLS_HEAD__
  2. #define __LZP_ORACLE_TOOLS_HEAD__

  3. class CLzpOracle
  4. {
  5. public:
  6.         CLzpOracle();
  7.         ~CLzpOracle();

  8.         int ConnectDatabase(char *strConn);
  9. };


  10. #endif
復(fù)制代碼


oratools.pc

  1. #include "stdafx.h"
  2. #include "oratools.h"


  3. /*SQL通訊區(qū)說明*/
  4. EXEC SQL INCLUDE SQLCA;
  5. /*SQL錯(cuò)誤處理說明語句*/
  6. EXEC SQL WHENEVER SQLERROR CONTINUE;
  7. EXEC SQL WHENEVER NOTFOUND CONTINUE;


  8. CLzpOracle::CLzpOracle()
  9. {
  10. }

  11. CLzpOracle::~CLzpOracle()
  12. {
  13. }

  14. int CLzpOracle::ConnectDatabase(char *strConn)
  15. {
  16.         EXEC SQL BEGIN DECLARE SECTION;
  17.                 char usrpwd[60];
  18.         EXEC SQL END DECLARE SECTION;

  19.         strcpy(usrpwd,strConn);
  20.         EXEC SQL CONNECT :usrpwd;
  21.         if (sqlca.sqlcode < 0)
  22.         {
  23.                 return -1;
  24.         }
  25.         return 0;
  26. }
復(fù)制代碼


4、右擊新加入的proc*c/c++文件(如oratools.pc),選擇"settings..."到"project settings",然后Custom Build頁:
       在Commands下寫入命令:proc 輸入入文件名 oname=輸出文件名(如:proc oratools.pc oname=oratools.cpp) 注如果要生成.cpp文件,oname=這項(xiàng)一定要填,不然它會(huì)自動(dòng)生成.c文件
       在Outputs下寫入輸出文件名(如oratools.cpp),這項(xiàng)我剛開始以為不寫上面的oname=,會(huì)輸出這里填寫的文件名,但事實(shí)上并不是這樣;
5、然后編譯工程,它將會(huì)自動(dòng)預(yù)編譯產(chǎn)生c/c++文件(如oratols.cpp),然后把這個(gè)文件作如下修改:
       1)把#include "stdafx.h"提到最前面;
       2)把函數(shù)的定義用下面的括起
         #ifdef  __cplusplus
         extern "C" {
         #endif
         
         #ifdef  __cplusplus
         }
         #endif


  1. #ifdef  __cplusplus
  2. extern "C" {
  3. #endif


  4. /* SQLLIB Prototypes */
  5. extern void sqlcxt (void **, unsigned long *,
  6.                     struct sqlexd *, const struct sqlcxp *);
  7. extern void sqlcx2t(void **, unsigned long *,
  8.                     struct sqlexd *, const struct sqlcxp *);
  9. extern void sqlbuft(void **, char *);
  10. extern void sqlgs2t(void **, char *);
  11. extern void sqlorat(void **, unsigned long *, void *);

  12. /* Forms Interface */
  13. static const int IAPSUCC = 0;
  14. static const int IAPFAIL = 1403;
  15. static const int IAPFTL  = 535;
  16. extern void sqliem(char *, int *);

  17. #ifdef  __cplusplus
  18. }
  19. #endif
復(fù)制代碼

6、把lib文件加入工程中:
       project->;settings->;link->;object/library modules中加入oraSQL8.lib.
7、最后編譯鏈接產(chǎn)生可執(zhí)行文件。注:如果重編譯整個(gè)工程時(shí),如果是產(chǎn)生.cpp文件一定別忘了修改預(yù)編譯產(chǎn)生的文件。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2004-05-25 14:23 |只看該作者

如何在VC++下集成使用Proc*C/C++(原創(chuàng))

前段時(shí)間也在搞這個(gè),很不錯(cuò),謝謝!

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2004-05-25 17:59 |只看該作者

如何在VC++下集成使用Proc*C/C++(原創(chuàng))

5、然后編譯工程,它將會(huì)自動(dòng)預(yù)編譯產(chǎn)生c/c++文件(如oratols.cpp),然后把這個(gè)文件作如下修改:
1)把#include "stdafx.h"提到最前面;
2)把函數(shù)的定義用下面的括起
#ifdef __cplusplus
extern "C" {
#endif

#ifdef __cplusplus
}
#endif


由于這樣每次重編譯都要去修改文件會(huì)比較煩,用以下方法可以做到不用修改:
1、對于第一點(diǎn)可以不編譯頭文件:
     選擇project->;settings...到C/C++頁,在Category中選擇“Precomplied Headers”在單選框上選擇第二項(xiàng)“Automatic use of Precomplied Headers”
2、對于第二點(diǎn)則可以在第四步中的命令改為如下:
     proc oratools.pc code=CPP
        注:這時(shí)可以不用加oname=oratools.cpp
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP