程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> PROC簡單使用用例--VC連接ORACLE

PROC簡單使用用例--VC連接ORACLE

編輯:Oracle教程

PROC簡單使用用例--VC連接ORACLE


操作系統:windows 7

數據庫版本:oracle 10g

VS版本:VS2010

前言:連接ORACLE的方式有很多,此處僅以PROC為例,說明如何連接oracle,有不妥之處,望諸位看官指出,學習共進。

一、安裝oracle 10g對應的客戶端版本。

  注意事項:做好客戶配置,以本機為例:D:\oracle\product\10.2.0\client_2\NETWORK\ADMIN\tnsnames.ora文件為

# tnsnames.ora Network Configuration File: d:\oracle\product\10.2.0\client_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

DB_DEMO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.8.222)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = db_demo)
)
)

host:ORACLE服務端IP地址;PORT:ORACLE服務端端口號,默認為1521;SERVICE_NAME:數據庫名稱。

二、建立oracle.pc文件,文件內容為:

// oracle.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <stdlib.h>

#include <process.h> 
#include <errno.h> 

//EXEC SQL INCLUDE SQLCA;
#include <sqlca.h>

int main(int argc, char* argv[])
{
	EXEC SQL BEGIN DECLARE SECTION;
	VARCHAR myusername[20], mypassword[20], myserver[20];
	EXEC SQL END DECLARE SECTION;

	printf( "\n請輸入用戶名:" );
	gets( (char*)myusername.arr );
	myusername.len = (unsigned short) strlen( (char*)myusername.arr );
	printf( "\n請輸入口令:" );
	gets( (char*)mypassword.arr );
	mypassword.len = (unsigned short) strlen( (char*)mypassword.arr );
	printf("\n請輸入服務器名:");
	gets( (char*)myserver.arr );
	myserver.len = (unsigned short) strlen( (char*)myserver.arr );
	EXEC SQL CONNECT :myusername IDENTIFIED BY :mypassword USING :myserver;
	
	if(sqlca.sqlcode < 0 )
		printf (" \n用戶%s成功地連接到了服務器%s上!\n" , myusername.arr, myserver.arr); 
	else
		printf("\n%ld,%s\n", sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
	return 0;
}

三、找到ORACLE安裝目錄下PROC.exe文件,本機目錄為:D:\oracle\product\10.2.0\client_2\BIN,將oracle.pc文件拷貝到些目錄下,運行cmd命令行,cd到此目錄下,運行proc.exe oracle.pc oracle.cpp命令,會在當前目錄下生成oracle.cpp文件。

四、啟動VS2010,建立空控件台的oracle項目,以下要注意了,做好VS項目配置。將oracle.cpp的拷貝至oracle目錄下,添加進工程。然後做下圖的配置:

1、數據庫include頭文件路徑配置

\

2、數據庫LIB文件目錄配置

\

3、數據庫依賴LIB文件配置

\

五、刪除之前自動生成的oracle.cpp文件,將oracle.cpp添加進oracle項目,編譯鏈接。可能會出現以下幾個錯誤:

1、提示未include "stdafx.h"。解決方案:在oracle.cpp開始部位添加#include "stdafx.h"

2、提示 error LNK2001: unresolved external symbol "void __cdecl sqlcxt(void * *,unsigned int *,struct sqlexd *,struct sqlcxp const *)" (?sqlcxt@@YAXPAPAXPAIPAUsqlexd@@PBUsqlcxp@@@Z)錯誤。解決方案:extern void sqlcxt (void **, unsigned int *,struct sqlexd *, const struct sqlcxp *);在extern後加上"C"編譯即可

3、其它一些問題,就仔細查看配置的include、lib路徑是否正確,以及lib文件名是否正確。

六、運行生成的oracle.exe。截圖如下:

\

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved