CString tablepath,tablename;
CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY,
"TXT Files (*.mdb)|*.mdb|All Files (*.*)|*.*||",NULL);
if(dlg.DoModal()==IDOK)
{
tablepath=dlg.GetPathName();
tablename=dlg.GetFileName();
}
else
return;
try
{
CDatabase dbTemp;
CRecordset p_Set(&dbTemp);
dbTemp.Open(NULL,false,false,tablepath);//这边的打开方式好像有问题,它会弹出设置database数据源对话框,我不想要弹出对话框,而是直接通过上面代码取得的文件路径tablepath打开我的access文件,我是新手,不太会,网上查了资料,对database.open的参数也斟酌了一下,还是无法理解,还有我在控制面板的ODBC里面也设好了数据源了。请能者为我解忧,指点我最后一段代码究竟如何写,多谢!多谢!
再有我是想直接用ODBC打开Access
CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY,
"TXT Files (*.mdb)|*.mdb|All Files (*.*)|*.*||",NULL);
if(dlg.DoModal()==IDOK)
{
tablepath=dlg.GetPathName();
tablename=dlg.GetFileName();
}
else
return;
try
{
CDatabase dbTemp;
CRecordset p_Set(&dbTemp);
dbTemp.Open(NULL,false,false,tablepath);//这边的打开方式好像有问题,它会弹出设置database数据源对话框,我不想要弹出对话框,而是直接通过上面代码取得的文件路径tablepath打开我的access文件,我是新手,不太会,网上查了资料,对database.open的参数也斟酌了一下,还是无法理解,还有我在控制面板的ODBC里面也设好了数据源了。请能者为我解忧,指点我最后一段代码究竟如何写,多谢!多谢!
再有我是想直接用ODBC打开Access
{
// TODO: Add your control notification handler code here
//初始化COM对象
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));//连接对象
_RecordsetPtr pRst(__uuidof(Recordset));//记录集对象
_CommandPtr pCmd(__uuidof(Command));//COMMAND对象
//设置连接字符串
/*在VC中 连接SQl Server数据的字符串:Driver={SQL Server};Server=.;Database=test;Trusted_Connection=Yes;
说明MySqlServer为数据库服务器名或Ip地址,MyTable为数据库表4};在VC中连接Access数据的字符串Astr.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\SHMS.mdb;Persist Security Info=False;Jet OLEDB:Database Password=287803603");
*/
//连接ACCESS
//pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Persist Security Info=False;Jet OLEDB:Database Password=";
//连接SQL SERVER
pConn->ConnectionString="Driver={SQL Server};Server=.;Database=mystudent;Trusted_Connection=Yes;";
//////////////////////////////////////////////////////////////ss
pConn->Open("","","",adConnectUnspecified);
//连接对象查询 记录获取数据
//方法1
//pRst=pConn->Execute("select * from student",NULL,adCmdText);
//方法2
pRst->Open("select C_NAME FROM TB_MSG",_variant_t((IDispatch*)pConn),adOpenDynamic,adLockOptimistic,adCmdText);
//方法三:
//pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
//pCmd->CommandText="select * from student";
//pRst=pCmd->Execute(NULL,NULL,adCmdText); //显示数据 while(!pRst->rsEOF)
{
MessageBox((_bstr_t)pRst->GetCollect("C_NAME"));
pRst->MoveNext();
}
//关闭记录集、连接
pConn->Execute("update TB_MSG set C_NAME='蓝石生' where C_ID=1",NULL,adCmdText);
pRst->Close();
pConn->Close();
//释放资源
pCmd.Release();
pRst.Release();
pConn.Release();
CoUninitialize();}