龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC++下使用ADO编写数据库程序(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
其中CommandText是命令字串,通常是SQL命令。 参数RecordsAffected是操作完成后所影响的行数, 参数Options表示CommandText中内容的类型,Options可以取如下值之一:

其中CommandText是命令字串,通常是SQL命令。
参数RecordsAffected是操作完成后所影响的行数,
参数Options表示CommandText中内容的类型,Options可以取如下值之一:
adCmdText:表明CommandText是文本命令
adCmdTable:表明CommandText是一个表名
adCmdProc:表明CommandText是一个存储过程
adCmdUnknown:未知

例子:
_variant_t RecordsAffected;
m_pConnection->Execute("UPDATE users SET old = old+1",&RecordsAffected,adCmdText);
5.调用存储过程
(1)、利用_CommandPtr
_CommandPtrm_pCommand;
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->ActiveConnection = m_pConnection;  // 将库连接赋于它
m_pCommand->CommandText = "Demo"; 
m_pCommand->Execute(NULL,NULL, adCmdStoredProc); 
(2)、直接用_ConnectionPtr直接调用(见4.(2))

6.遍历数据库中的所有表名 _ConnectionPtr m_pConnect;
_RecordsetPtr pSet;
HRESULT hr;
try

hr = m_pConnect.CreateInstance("ADODB.Connection");   
if(SUCCEEDED(hr)) 
{  
CString dd;  
dd.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",file);  
hr = m_pConnect->Open((_bstr_t)dd,"","",adModeUnknown);  
pSet = m_pConnect->OpenSchema(adSchemaTables);     
while(!(pSet->adoEOF))  
{        
//获取表格   
_bstr_t table_name = pSet->Fields->GetItem("TABLE_NAME")->Value;

//获取表格类型       
_bstr_t table_type = pSet->Fields->GetItem("TABLE_TYPE")->Value;

//过滤一下,只输出表格名称,其他的省略
if ( strcmp(((LPCSTR)table_type),"TABLE")==0){
CString tt;
tt.Format("%s",(LPCSTR)table_name);    
AfxMessageBox(tt);       
}      
pSet->MoveNext();   
}  
pSet->Close(); 

m_pConnect->Close(); 
}catch(_com_error e)///捕捉异常

CString errormessage; 
errormessage.Format("连接数据库失败!rn错误信息:%s",e.ErrorMessage());

AfxMessageBox(errormessage);
return -1;
}

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接