在利用ado連接數(shù)據(jù)庫之前,需要做一些準備

10年的眉縣網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整眉縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“眉縣網(wǎng)站設計”,“眉縣網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
1.用#import指令引入ADO類型庫
我們在stdafx.h中加入如下語句:
#import "c:program filescommon filessystemadomsado15.dll" no_namespace rename("EOF","adoEOF") 。
這一語句有何作用呢?其最終作用同我們熟悉的#i nclude類似,編譯的時候系統(tǒng)會為我們生成msado15.tlh,ado15.tli兩個C++頭文件來定義ADO庫。
幾點說明:
(1) 您的環(huán)境中msado15.dll不一定在這個目錄下,請按實際情況修改
(2) 在編譯的時候肯能會出現(xiàn)如下警告,對此微軟在MSDN中作了說明,并建議我們不要理會這個警告。msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
2、初始化OLE/COM庫環(huán)境
必須注意的是,ADO庫是一組COM動態(tài)庫,這意味應用程序在調(diào)用ADO前,必須初始化OLE/COM庫環(huán)境。在MFC應用程序里,一個比較好的方法是在應用程序主類的InitInstance成員函數(shù)里初始化OLE/COM庫環(huán)境。
BOOL CMyAdoTestApp::InitInstance()
{
if(!AfxOleInit())//這就是初始化COM庫
{
AfxMessageBox(“OLE初始化出錯!”);
return FALSE;
}
}
3.ADO庫包含三個基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。與數(shù)據(jù)庫的連接就是用_ConnectionPtr接口,它的連接字符串可以是自己直接寫,也可以指向一個ODBC DSN。以下的例子都測試通過,順便寫了SQL Server的例子。
BOOL CTestconDlg::ConnectDatabase()
{
CString m_server,m_data,m_uid,m_pwd;
m_server="192.168.0.24";//服務器ip或名稱
m_data="crmdb";//ODBC數(shù)據(jù)源
m_uid="njcrm";//用戶名
m_pwd="crmdbo";//密碼
BOOL retFt=false;
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///創(chuàng)建Connection對象
if(SUCCEEDED(hr))
{
_bstr_t connStr;
m_pConnection-CursorLocation=adUseClient;
//begin---------------Oracle ODBC 配置數(shù)據(jù)源-------------------------------------
//控制面板-管理工具-數(shù)據(jù)源(ODBC)-系統(tǒng)DNS-添加-Microsoft ODBC for Oracle-完成-配置……
// connStr="DSN="+m_data;
// m_pConnection-Open(_bstr_t(connStr),(_bstr_t)m_uid,(_bstr_t)m_pwd,adConnectUnspecified);
//end---------------Oracle ODBC 配置數(shù)據(jù)源---------------------------------------
//begin---------------Oracle 標準安全級別---------------------------------------
// connStr="Provider=OraOLEDB.Oracle;User ID=njcrm;Password=crmdbo;Data Source=192.168.0.24;";
// m_pConnection-Open(_bstr_t(connStr),(_bstr_t)_T(""),(_bstr_t)_T(""),adConnectUnspecified);
//end---------------Oracle 標準安全級別---------------------------------------
//begin---------------Oracle 微軟格式----------------------------------
外連接 : 使用外連接可以查存不滿足條件的數(shù)據(jù) 符號(+) SQL select e.ename,e.sal,d.dname,d.loc from emp e,dept d 2 where e.deptno=d.deptno(+); 自連接: SQL select w.ename||' work for '||m.job from emp w,emp m 2 where w.empno=m.empno;
具體的代碼如下:
/// summary
/// Oracle 的數(shù)據(jù)庫連接字符串.
/// /summary
private const String connString =
@"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.210)
(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User
Id=TEST;Password=TEST123";
192.168.1.210 是 Oracle?數(shù)據(jù)庫服務器的 IP 地址
1521 是 默認的端口號
SERVICE_NAME=ORCL 意思是Oracle 數(shù)據(jù)庫服務是ORCL
后面就是用戶名密碼了。
擴展資料:
部分描述:
abstract:可以和類、方法、屬性、索引器及事件一起使用,標識一個可以擴展但不能被實體化的、必須被實現(xiàn)的類或方法。
as:一個轉(zhuǎn)換操作符,如果轉(zhuǎn)換失敗,就返回null。
base:用于訪問被派生類或構造中的同名成員隱藏的基類成員。
catch:定義一個代碼塊,在特定類型異常拋出時,執(zhí)行塊內(nèi)代碼。
checked:既是操作符又是語句,確保編譯器運行時,檢查整數(shù)類型操作或轉(zhuǎn)換時出現(xiàn)的溢出。
const:標識一個可在編譯時計算出來的變量值,即一經(jīng)指派不可修改的值。
delegate:指定一個聲明為一種委托類型。委托把方法封裝為可調(diào)用實體,能在委托實體中調(diào)用。
enum:表示一個已命名常量群集的值類型。
event:允許一個類或?qū)ο筇峁┩ㄖ某蓡T,他必須是委托類型。
explicit:一個定義用戶自定義轉(zhuǎn)換操作符的操作符,通常用來將內(nèi)建類型轉(zhuǎn)換為用戶定義類型或反向操作,必須再轉(zhuǎn)換時調(diào)用顯示轉(zhuǎn)換操作符。
extern:標識一個將在外部(通常不是c#語言)實現(xiàn)的方法。
參考資料來源:百度百科-c#
url=jdbc\:oracle\:thin\:@localhost\:1521\:SYSDBA
感覺上面這個有點問題呢,你的數(shù)據(jù)庫是sysdba嗎?比較標準的格式是
jdbc:oracle:thin:@//localhost:1521/[數(shù)據(jù)庫的服務名]
name=SYS
password=admin
這兩個也有問題,sys是系統(tǒng)管理帳號,你的軟件帳號是用sys嗎?
connection as SYS should be as SYSDBA or SYSOPER! 提示這個的原因是你使用了sys帳號的原因.換你系統(tǒng)應該使用的帳號和密碼就不會出現(xiàn)這樣的問題了
Oracle數(shù)據(jù)庫:
驅(qū)動程序包名:ojdbc14.jar
驅(qū)動類的名字:oracle.jdbc.driver.OracleDriver
JDBC URL:jdbc:oracle:thin:@dbip:port:databasename
說明:驅(qū)動程序包名有可能會變
JDBC URL中黑色字體部分必須原封不動的保留,為該驅(qū)動識別的URL格式。紅色字體部分需要根據(jù)數(shù)據(jù)庫的安裝情況填寫。其中各個部分含義如下:
dbip –為數(shù)據(jù)庫服務器的IP地址,如果是本地可寫:localhost或127.0.0.1。
port –為數(shù)據(jù)庫的監(jiān)聽端口,需要看安裝時的配置,缺省為1521。
databasename –為數(shù)據(jù)庫的SID,通常為全局數(shù)據(jù)庫的名字。
舉例如果要訪問本地的數(shù)據(jù)庫allandb,端口1521,那么URL寫法如下:
jdbc:oracle:thin:@localhost:1521:allandb
配置Oracle服務器端與客戶端網(wǎng)絡連接方法:
1、打開Oracle自帶的Net Manager,選中目錄樹中的服務命名,再點擊左上側“+”按鈕,彈出如下圖示對話框:
2、在輸入框中填寫Net服務名,如Myoracle,點擊下一步,進入下圖示對話框:
3、選中TCP/IP(Internet協(xié)議),點擊下一步:
4、填寫主機名與端口號。點擊下一步:
5、選中(Oracle8i或更高版本)服務名,輸入服務名。這里的服務名實際上就是數(shù)據(jù)庫服務器端監(jiān)聽器配置中的全局數(shù)據(jù)庫名,前者與后者必須相同。配置好后點擊下一步:
6、配置完成的本地服務名如下圖示:
public void testOracle()
{
Connection con = null;// 創(chuàng)建一個數(shù)據(jù)庫連接
PreparedStatement pre = null;// 創(chuàng)建預編譯語句對象,一般都是用這個而不用Statement
ResultSet result = null;// 創(chuàng)建一個結果集對象
try
{
? ?Class.forName("oracle.jdbc.driver.OracleDriver");// 加載Oracle驅(qū)動程序
? ?System.out.println("開始嘗試連接數(shù)據(jù)庫!");
? ?String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本機地址,XE是精簡版Oracle的默認數(shù)據(jù)庫名
? ?String user = "system";// 用戶名,系統(tǒng)默認的賬戶名
? ?String password = "147";// 你安裝時選設置的密碼
? ?con = DriverManager.getConnection(url, user, password);// 獲取連接
? ?System.out.println("連接成功!");
? ?String sql = "select * from student where name=?";// 預編譯語句,“?”代表參數(shù)
? ?pre = con.prepareStatement(sql);// 實例化預編譯語句
? ?pre.setString(1, "劉顯安");// 設置參數(shù),前面的1表示參數(shù)的索引,而不是表中列名的索引
? ?result = pre.executeQuery();// 執(zhí)行查詢,注意括號中不需要再加參數(shù)
? ?while (result.next())
? ? ? ?// 當結果集不為空時
? ? ? ?System.out.println("學號:" + result.getInt("id") + "姓名:"
? ? ? ? ? ? ? ?+ result.getString("name"));
}
catch (Exception e)
{
? ?e.printStackTrace();
}
finally
{
? ?try
? ?{
? ? ? ?// 逐一將上面的幾個對象關閉,因為不關閉的話會影響性能、并且占用資源
? ? ? ?// 注意關閉的順序,最后使用的最先關閉
? ? ? ?if (result != null)
? ? ? ? ? ?result.close();
? ? ? ?if (pre != null)
? ? ? ? ? ?pre.close();
? ? ? ?if (con != null)
? ? ? ? ? ?con.close();
? ? ? ?System.out.println("數(shù)據(jù)庫連接已關閉!");
? ?}
? ?catch (Exception e)
? ?{
? ? ? ?e.printStackTrace();
? ?}
}
}
網(wǎng)站欄目:oracle連接怎么寫,oracle連接oracle
轉(zhuǎn)載注明:http://chinadenli.net/article44/dseghee.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、全網(wǎng)營銷推廣、營銷型網(wǎng)站建設、外貿(mào)網(wǎng)站建設、網(wǎng)站設計公司、面包屑導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)