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'