![](/icons/41937yi.gif)
.数据库
![](/icons/41937de.gif)
编程(ADO)
要用ADO连接数据
![](/icons/41937de.gif)
头文件中加入#import\"c:\\ProgramFiles\\CommonFiles\\
![](/icons/41937System.gif)
\\ado\\msado15.dll\"no_
![](/icons/41937namespace.gif)
rename(\"EOF\",\"adoEOF\")rename(\"BOF\",\"adoBOF\")
//
![](/icons/41937chushi.gif)
化OLE/COM库环境_ConnectionPtrm_pConnection;
::CoInitialize(NULL);
charbuf[256],server[256],datebase[256],uid[256],pwd[256];charstr[255];
GetCurrentDirectory(255,str);//获得当前目录
strcat(str,\"\\\\dbinfo.ini\");
![](/icons/41937int.gif)
len0=GetPrivateProfileString(\"dbinfo\",\"Provider\",\"NoText\",buf,256,str);//读取配置文件中
![](/icons/41937de.gif)
数据库连接信息
![](/icons/41937int.gif)
len1=GetPrivateProfileString(\"dbinfo\",\"server\",\"NoText\",server,256,str);
![](/icons/41937int.gif)
len2=GetPrivateProfileString(\"dbinfo\",\"Database\",\"NoText\",datebase,256,str);
![](/icons/41937int.gif)
len3=GetPrivateProfileString(\"dbinfo\",\"uid\",\"NoText\",uid,256,str);
![](/icons/41937int.gif)
len4=GetPrivateProfileString(\"dbinfo\",\"pwd\",\"NoText\",pwd,256,str);try
{
//创建Connection对象
m_pConnection.CreateInstance(\"ADODB.Connection\");
//设置连接
![](/icons/41937zifu.gif)
串
![](/icons/41937dou.gif)
必须是BSTR型或者_bstr_t类型
_bstr_tstrConnect=\"Provider=\";
strConnect=strConnect+buf;
strConnect=strConnect+\";Server=\";
strConnect=strConnect+server;
strConnect=strConnect+\";Database=\";
strConnect=strConnect+datebase;
strConnect=strConnect+\";uid=\";
strConnect=strConnect+uid;
strConnect=strConnect+\";pwd=\";
strConnect=strConnect+pwd;m_pConnection->Open(strConnect,\"\",\"\",adModeUnknown);//连接到指定
![](/icons/41937de.gif)
数据库
}
//捕捉异常
catch(_com_errore)
{
//显示
![](/icons/41937cuowu.gif)
信息
AfxMessageBox(e.Description
![](/icons/41937kh.gif)
);
}
执行无返回值(记录集)
![](/icons/41937de.gif)
SQL语句
![](/icons/41937dou.gif)
InsertUpdate等无返回值
![](/icons/41937de.gif)
语句
//Connection对象
![](/icons/41937de.gif)
Execute思路方法:(_bstr_tCommandText, [Page]
//VARIANT*RecordsAffected,longOptions)
//其中CommandText是命令字串
![](/icons/41937dou.gif)
通常是SQL命令
//参数RecordsAffected是操作完成后所影响
![](/icons/41937de.gif)
行数,
//参数Options表示CommandText
![](/icons/41937de.gif)
类型:adCmdText-文本命令;adCmdTable-表名
//adCmdProc-存储过程;adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
执行有返回值(记录集)
![](/icons/41937de.gif)
SQL语句
_Record
![](/icons/41937set.gif)
Ptrm_pRecord
![](/icons/41937set.gif)
;
//创建记录集对象
m_pRecord
![](/icons/41937set.gif)
.CreateInstance(__uuidof(Record
![](/icons/41937set.gif)
));
//返回表中
![](/icons/41937de.gif)
记录
m_pRecord
![](/icons/41937set.gif)
->Open(bstrSQL,m_pConnection.GetInterfacePtr
![](/icons/41937kh.gif)
,adOpenDynamic,adLockOptimistic,adCmdText);
CListCtrlm_list1;//记录显示在CListCtrl中
![](/icons/41937if.gif)
(!m_pRecord
![](/icons/41937set.gif)
->adoEOF)//如果记录不为空
{
while(!m_pRecord
![](/icons/41937set.gif)
->adoEOF)
{
m_list1.InsertItem(i,(LPCTSTR)(_bstr_t)m_pRecord
![](/icons/41937set.gif)
->GetCollect(\"ID\"));
m_list1.SetItemText(i,1,(LPCTSTR)(_bstr_t)m_pRecord
![](/icons/41937set.gif)
->GetCollect(\"t
![](/icons/41937int.gif)
CallType\"));
m_list1.SetItemText(i,2,(LPCTSTR)(_bstr_t)m_pRecord
![](/icons/41937set.gif)
->GetCollect(\"t
![](/icons/41937int.gif)
HangUp\"));
_variant_tvMaxid(m_pRecord
![](/icons/41937set.gif)
->GetCollect(\"strCallingNmb\"));
![](/icons/41937if.gif)
(vMaxid.vt
![](/icons/41937dd.gif)
VT_NULL)
vMaxid=\"\";
m_list1.SetItemText(i,3,(LPCTSTR)(_bstr_t)vMaxid);
_variant_tvMaxid0(m_pRecord
![](/icons/41937set.gif)
->GetCollect(\"strCalledNmb\"));
![](/icons/41937if.gif)
(vMaxid0.vt
![](/icons/41937dd.gif)
VT_NULL)
vMaxid0=\"\";
m_list1.SetItemText(i,4,(LPCTSTR)(_bstr_t)vMaxid0);
_variant_tvMaxid1(m_pRecord
![](/icons/41937set.gif)
->GetCollect(\"strOriginNmb\"));
![](/icons/41937if.gif)
(vMaxid1.vt
![](/icons/41937dd.gif)
VT_NULL)//此字段在数据库中为NULL值
vMaxid1=\"\";i
![](/icons/41937jiajia.gif)
;//CListCtrl中
![](/icons/41937de.gif)
第i行显示此记录
m_pRecord
![](/icons/41937set.gif)
->MoveNext
![](/icons/41937kh.gif)
;//下
![](/icons/41937yi.gif)
条记录
}
}
m_pRecord
![](/icons/41937set.gif)
->Close
![](/icons/41937kh.gif)
;//记录集读取完毕
![](/icons/41937dou.gif)
关闭记录集
执行带参数无返回值(
![](/icons/41937yi.gif)
个或者多个记录集)
![](/icons/41937de.gif)
存储过程
_CommandPtrm_p
![](/icons/41937new.gif)
Command;
m_p
![](/icons/41937new.gif)
Command.CreateInstance(\"ADODB.Command\"); [Page]
m_p
![](/icons/41937new.gif)
Command->ActiveConnection=m_pConnection;
m_p
![](/icons/41937new.gif)
Command->CommandType=adCmdStoredProc;
m_p
![](/icons/41937new.gif)
Command->CommandText=_bstr_t(\"proc_deleteSMCBQueue\");
unsignedchar
![](/icons/41937new.gif)
flag=1;
_ParameterPtrP
![](/icons/41937new.gif)
flag,P
![](/icons/41937new.gif)
recordID;
P
![](/icons/41937new.gif)
flag.CreateInstance(__uuidof(Parameter));
P
![](/icons/41937new.gif)
recordID.CreateInstance(__uuidof(Parameter));
CString
![](/icons/41937new.gif)
st=\"\";
![](/icons/41937new.gif)
st.Format(\"%d\",recordID);
P
![](/icons/41937new.gif)
flag=m_p
![](/icons/41937new.gif)
Command->CreateParameter(_bstr_t(\"flag\"),adTinyInt,adParamInput,1,(_variant_t)
![](/icons/41937new.gif)
flag);
m_p
![](/icons/41937new.gif)
Command->Parameters->Append(P
![](/icons/41937new.gif)
flag);
P
![](/icons/41937new.gif)
recordID=m_p
![](/icons/41937new.gif)
Command->CreateParameter(_bstr_t(\"recordID\"),adInteger,adParamInput,4,(_variant_t)(_bstr_t)
![](/icons/41937new.gif)
st);
m_p
![](/icons/41937new.gif)
Command->Parameters->Append(P
![](/icons/41937new.gif)
recordID);
try
{
m_p
![](/icons/41937new.gif)
Command->Execute(NULL,NULL,adCmdStoredProc);
}
catch(...)
{
}
执行有参数有返回记录集
![](/icons/41937de.gif)
存储过程(其实就是执行有返回值(记录集)
![](/icons/41937de.gif)
SQL语句)
CStringsqlrecord=\"execproc_getSMCBQueue1\";
try
{
m_pRecord
![](/icons/41937set.gif)
=m_pConnection->Execute((_bstr_t)sqlrecord,NULL,adCmdText);
}
catch(...)
{
}
今天就记
![](/icons/41937yi.gif)
下VC有关数据库
![](/icons/41937de.gif)
编程吧
![](/icons/41937dou.gif)
下次再记VC有关网络
![](/icons/41937de.gif)
编程吧!
只是真正
![](/icons/41937de.gif)
用_CommandPtrm_p
![](/icons/41937new.gif)
Command执行存储过程返回
![](/icons/41937yi.gif)
个或者多个记录集
![](/icons/41937dou.gif)
再分别对各记录集进行操作还没有实现啊!
延伸阅读
最新评论