VC连接Access数据库字符串

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'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章