ADO方式連接數據庫:
引入類型庫:
stdafx.h頭文件中加入#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","END")
數據庫連接:
_ConnectionPtr pconnection;
初始化COM庫
AfxOleInit();
連接數據庫:
pconnection.CreateInstance("ADODB.Connection");
pconnection->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=student.accdb;","","",adModeUnknown);
//這裏是07版Access
-------------------------------------
數據庫操作:
_RecordsetPtr recordset;
recordset.CreateInstance("ADODB.Recordset");########每次執行sql語句前必須使用
定義sql語句:
cmd="***";
執行sql語句:
hr=recordset->Open((_variant_t)cmd,_variant_t((IDispatch*)pconnection,true),adOpenStatic,adLockOptimistic,adCmdText);
取得查詢語句結果:
if(!recordset->END)
{
m_strName=(char *)(_bstr_t)record->GetCollect("姓名");
}
-----------------------------------
拋出對話框
CLoginDlg LoginDlg;
if(LoginDlg.DoModal()==IDOK){}
else{}
-----------------------------------
操作過程中可以用try--catch進行除錯:
try{}
catch(_com_error e){}錯誤信息在e.ErrorMessage中
檢查函數是否有返回時候可用:
HRESULT hr;
if(SUCCEEDED(hr)) {}
----------------------------------
在程序開始時候調用登錄框:
在主程序初始化的時候定義一個登錄框:
CLoginDlg LoginDlg;
if(LoginDlg.DoModal()==IDOK){}
----------------------------------
數據庫使用完畢後關閉連接:
pconnection->Close();
recordset->Close();
#pconnection.Release;
#recordset.Release;
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!UserId在Access數據庫中不能隨便用
SQL語句:
表的建立刪除及更新:
建立CREATE TABLE XX(
S# CHAR(4) NOT NULL,
SNAME CHAR(10) NOT NULL,
SEX CHAR(2),
AGE SMALLINT,
ADDRESS CHAR(20),
PRIMARY KEY(S#))//說明主鍵
刪除DROP TABLE XX
更新ALTER TABLE XX(
ADD XX CHAR(4) NOT NULL,
DROP XX CHAR(4) NOT NULL,
MODIFY XX CHAR(4));
索引的建立
CREATE UNIQUE INDEX XXON 列名1,列名2·····
索引刪除
DROP INDEX 索引名;
數據庫查詢語句
SELECT * FROM XX WHERE XX='' AND XX=''
-------------------------------------------------
數據的操作
插入數據INSERT INTO STU VALUES(10,'李六',17,'南京','2342342')
修改數據UPDATE STU SET AGE=23 WHERE S#='10'
刪除數據DELETE FROM STU WHERE S#='1'
VC連接Access數據庫字符串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.