涓嬮潰鍒楀嚭浜嗚繛鎺ヤ笁縐嶆暟鎹簱鐨勮鍙?br />CString strConn;
1銆佽繛鎺QL SERVER
strConn.Format("driver={SQL Server}; Server=%s; DATABASE=%s; UID=%s; PWD=%s", strServer, dbName, user, psw);
strServer鏄湇鍔″櫒鍚嶏紝濡傛灉璁塊棶鏈湴鏁版嵁搴擄紝鍙槸璁緎trServer = “172.0.0.1”鎴?#8221;.”;榪欐槸鎴戣瘯榪囩殑錛岄兘鍙互銆?br />dbName鏄暟鎹簱鍚嶇О錛寀ser, psw鏄敤鎴峰悕鍜屽瘑鐮併?br />2銆佽繛鎺RACLE
trConn.Format("Provider=MSDAORA.1;Data Source=%s;", "%s", "%s", adModeUnknown, dbName, user, psw);
dbName, user, psw鍒嗗埆鏄暟鎹簱鍚嶏紝鐢ㄦ埛鍚嶏紝瀵嗙爜銆?br />3銆佽繛鎺CCESS
strConn.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;
Persist Security Info=False;Jet OLEDB:Database Password=%s", dbName, psw);
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=fnamepath","","",adModeUnknown
dbName鏄暟鎹簱璺緞鍚嶏紝濡?#8220;F:\\DB\\hermes.mdb”,psw鏄瘑鐮併?br />
璁劇疆浜嗚繛鎺ヨ鍙ワ紝涓嬮潰瑕佸拰鏁版嵁搴撹繘琛岃繛鎺ヤ簡錛屽浜庝笂闈笁縐嶆暟鎹簱閮芥槸瑕佹墽琛屼笅闈㈣繖涓繛鎺ョ殑錛屼笅闈㈣鍙ユ槸鎵撲竴寮榪炴帴鐨勮鍙ャ?br />connPtr->Open((_bstr_t)strConn, "", "", adModeUnknown);
adModeUnknown:緙虹渷銆傚綋鍓嶇殑璁稿彲鏉冩湭璁劇疆
adModeRead:鍙
adModeWrite:鍙啓
adModeReadWrite:鍙互璇誨啓
adModeShareDenyRead:闃繪鍏跺畠Connection瀵硅薄浠ヨ鏉冮檺鎵撳紑榪炴帴
adModeShareDenyWrite:闃繪鍏跺畠Connection瀵硅薄浠ュ啓鏉冮檺鎵撳紑榪炴帴
adModeShareExclusive:闃繪鍏跺畠Connection瀵硅薄浠ヨ鍐欐潈闄愭墦寮榪炴帴
adModeShareDenyNone:闃繪鍏跺畠Connection瀵硅薄浠ヤ換浣曟潈闄愭墦寮榪炴帴
4銆佽繛鎺DL
CString strConnect = "File Name=" + udlDir;
connPtr->Open((_bstr_t)strConnect, (_bstr_t)user, (_bstr_t)psw, adModeUnknown);
瀛楃涓瞮dlDir鏄痷dl鏂囦歡璺緞錛寀ser鍜宲ssw鏄痷dl榪炴帴鏁版嵁搴撶殑鐢ㄦ埛鍚嶅拰瀵嗙爜銆?br />
寰楀埌璁板綍闆嗭細
l_pRecordset.CreateInstance("ADODB.Recordset");
l_pRecordset->Open(_bstr_t(l_strSQLConn),
_variant_t((IDispatch*)l_pConnection, true),
adOpenStatic, adLockOptimistic, adCmdText);
l_strSQLConn鏄痵elect璇彞
// 閬嶅巻緇撴灉闆?br />while( !l_pRecordset->adoEOF)
{
……// 鍦ㄨ繖閲屾坊鍔犳搷浣滅粨鏋滈泦鐨勪唬鐮佸錛?br />strTemp = (LPCSTR)(_bstr_t)l_pRecordsetTable->GetCollect(_variant_t((long)i));// 寰楀埌鏌愪釜瀛楁鐨勮褰曘?br /> l_pRecordset->MoveNext();
}
瀵規暟鎹簱鐨勬搷浣滀竴鑸嬌鐢ㄥ紓甯告満鍒躲備篃灝辨槸try{…}catch(){..}
娉ㄦ剰錛屼竴涓猒RecordsetPtr鐨勫璞″彧鑳藉緱鍒頒竴涓褰曢泦錛岄噸澶嶇敤鏃跺氨浼氬嚭閿欍傚綋瑕佹墦寮涓や釜鏁版嵁搴撴椂鏈濂藉畾涔変袱涓猒RecordsetPtr瀵硅薄
鍥涖佸叧闂褰曢泦鍜岃繛鎺?br />鍏抽棴璁板綍闆嗭細
l_pRecordsetTable->Close();
l_pRecordsetTable = NULL;
鍏抽棴榪炴帴錛?br />l_pConnection->Close();
l_pConnection = NULL;
// 閲婃斁鐜
::CoUninitialize();
闄勫姞錛?br />l_pRecordset鎵цselect璇彞鍚庡氨鍙互寰楀埌琛ㄧ殑瀛楁鍚嶏紝瀛楁鏁幫紝瀛楁澶у皬錛屾垜鍐欎簡涓変釜鍑芥暟錛屽垎鍒緱鍒版寚瀹氳〃鐨勫瓧孌墊暟錛?br />鎸囧畾瀛楁鐨勫瓧孌靛悕鍙婂瓧孌靛ぇ灝忋?br />
// 寰楀埌瀛楁鍚?br />BOOL CLx4Dlg::GetFieldsName(_RecordsetPtr RcdPtr, int nField, CString & strFieldName)
{
if(NULL == RcdPtr || nField >= RcdPtr->GetFields()->Count)return FALSE;
_variant_t vt((long)nField);
strFieldName.Format(_T("%s"), (char*)(RcdPtr->GetFields()->Item[vt]->Name));
return true;
}
// 寰楀埌瀛楁澶у皬
int CLx4Dlg::GetFieldsSize(_RecordsetPtr RcdPtr, int nField)
{
if(NULL == RcdPtr || nField >= RcdPtr->GetFields()->Count)return FALSE;
_variant_t vt((long)nField);
int nSize = RcdPtr->GetFields()->Item[vt]->DefinedSize; // 榪斿洖宸插0鏄庣殑瀛楁澶у皬
//int nSize = RcdPtr->GetFields()->Item[vt]->ActualSize; // 榪斿洖緇欏畾瀛楁涓暟鎹殑瀹為檯澶у皬
return nSize;
}
SQL 璇彞錛?br />寰楀埌SQL SERVER鐨勬墍鏈夌敤鎴風被鍨嬬殑琛?br />select name from sysobjects where xtype='U'
寰楀埌ORACLE鐨勬墍鏈夌敤鎴瘋〃
select tname from tab where tabtype='TABLE'
寰楀埌ACCESS鐨勬墍鏈夌敤鎴峰緩鐨勮〃
SELECT Name FROM MSysObjects WHERE Flags=0 AND Type=1
SELECT MSysObjects.Name FROM MSysObjects WHERE Type=1