在這裡先做乙個講解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...