C ADO方式連線oracle資料庫

2021-08-13 01:23:25 字數 2607 閱讀 9306

在這裡先做乙個講解ado和odbc的關係,及其呼叫關係。

圖1

從圖中可以看出來 ,ado 可以看出來 比如我想要連線到oracle資料庫是後 ,可以通過兩種途徑的到我想要的ado connection的 連線字串  ,一種是通過直接的odbc,在連線字串裡面就是dns,這個由odbc資料來源管理器設定dns(圖2,圖3指示),還有一種是通過oledb,也就是建立.udl檔案的方式來得到這樣的字串(這種方式晚上有很多,基本都是通過這樣的方式 ,我就不講解了,還有 oledb 選擇的不是資料來源驅動,oledb其關管理選項裡面有odbc的選項,這也和圖1是相匹配的)(圖4)。

在這裡我所用的是第一種方式來連線資料庫,建立dns的方法有兩種,一種介面的方式windowodbc資料來源管理器新增一條使用者dns,注意區分odbc資料來源管理器是64位還是32位。一種通過**,通過寫登錄檔的方式來建立dns(我這裡是通過**的方式)。

(注: **封裝dll在csdn上了)

圖2

圖3

圖4下面是通過ado來連線資料庫的部分

**在

//構造、析構函式來建立ado activex控制項

xhdbinte***ce::xhdbinte***ce(void)

xhdbinte***ce::~xhdbinte***ce(void)

}catch (_com_error e)

couninitialize();

}//連線函式裡面有通過登錄檔的方式來建立odbc資料來源dns

int xhdbinte***ce::connectiondb(stconndbinfo stconninfo)

m_ndbtype = stconninfo.ndbtype

; if (m_ndbtype == oracle)

int bcdsn = 0

; //建dsn

bcdsn = createdbsourcename(stconninfo);

if (!bcdsn)

coinitialize(null);

//連資料庫

if(m_pconnection != null)

tryelse

}else

}catch(_com_error e)

if (m_bconndb)

else

}//建立tns

int xhdbinte***ce::createtnsnamesora(stconndbinfo stconninfo)

else

retcode = m_creg.setrootkey(hkey_local_machine);

retcode = m_creg.setkey(strkey + _t("\\key_oraclient11g_home1"),false);

if(!retcode)

cstring strorgpath("");

strorgpath = m_creg.readstring(_t("oracle_home"),_t(""));

if (strorgpath == "")

else

//分析檔案

cfileoperator cfileop;

vectorveclines;

bool bfind = false;

cfileop.readtnsnamesoradata(strorgpath.getbuffer(strorgpath.getlength()),veclines);

cstring strtns(""),strservice("");

strtns.format(_t("%s"),stconninfo.strtnssn);

strtns.trim();

strservice.format(_t("%s"),stconninfo.strservername);

strservice.trim();

for (int i=0

;i else

break

; }

}//更改配置

if (!bfind && strtns != "")

//初始化鍵

if (!retcode)

return retcode;

}//建立dns

int xhdbinte***ce::createdbsourcename(stconndbinfo stconninfo)

break

; default:

break

; }

return nrval;

}

增刪查改 就不在這介紹

Oracle表連線方式

實用記憶方法 在哪邊,哪邊就是外來鍵,該錶的資料就 少 無 那邊檢索的就是全表資料。oracle 8i,9i 表連線方法。一般的相等連線 select from a,b where a.id b.id 這個就屬於內連線。對於外連線 oracle中可以使用 來表示,9i可以使用left right f...

oracle 表連線方式

一 連線方式 巢狀迴圈 nested loops nl 雜湊 雜湊連線 hash join hj 歸併 排序合併連線 sort merge join smj 二 連線說明 1.oracle一次只能連線兩個表。不管查詢中有多少個表,oracletable 和內部表 inner table 在巢狀迴圈連...

R for windows連線oracle資料庫

相關資料均出自r manual。只包含rodbc方法。其他oci等暫不考慮。1.安裝r軟體。2.安裝oracle。安裝目錄 d oraclexe 這個目錄下面有tnsnames.ora,listener.ora,sqlnet.ora等配置檔案,修改tnsnames.ora檔案新增需要登入的資料庫se...