利用ADOX创建ACCESS链接表(VC/MFC)

简介:

   网上只找到VB代码,折腾了不少时间,把代码翻译为VC代码。主要参考这三篇文章:123

   参数说明:

   fileFrom: 外部数据库文件

   tableFrom: 外部数据库表

   fileTo: 主数据库文件

   tableTo: 主数据库文件中链接表的名字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//创建ACCESS数据库链接表
BOOL  CACCADO::CreateLinkedTable(CString fileFrom, CString tableFrom, CString fileTo, CString tableTo)
{
     ADOX::_CatalogPtr pCatalog = NULL;
     try
     {
         pCatalog.CreateInstance(__uuidof(ADOX::Catalog));
         CString connStr;
         connStr = _T( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" ) + fileTo + _T( ";" );
         pCatalog->PutActiveConnection(_bstr_t(connStr));
         ADOX::_TablePtr pTable = NULL;
         pTable.CreateInstance(_T( "ADOX.Table" ));
         pTable->ParentCatalog = pCatalog;
         pTable->Name = _bstr_t(tableTo);
                                        
         ADOX::PropertiesPtr pProperties = pTable->GetProperties();
         ADOX::PropertyPtr pProperty = NULL;
         pProperty = pProperties->GetItem(_T( "Jet OLEDB:Create Link" ));
         pProperty->Value = TRUE;
         pProperty = pProperties->GetItem(_T( "Jet OLEDB:Link Datasource" ));
         pProperty->Value = _bstr_t(fileFrom);
         pProperty = pProperties->GetItem(_T( "Jet OLEDB:Remote Table Name" ));
         pProperty->Value = _bstr_t(tableFrom);
                                        
         pCatalog->Tables->Append(_variant_t((IDispatch*)pTable));
         pCatalog->Tables->Refresh();   //刷新
     }
     catch (_com_error &e)
     {
         CString errmsg = _T( "创建链接表出错:" ) + CString(( LPCSTR )e.Description());
         AfxMessageBox(errmsg);
         return  FALSE;
     }
     return  TRUE;
}


相关阅读:

1、ADO数据库编程 - 总结

2、ADO判断ACCESS字段值是否为NULL

3、利用ADOX修改ACCESS表字段名(VC/MFC)

4、ADO获取表的所有字段名


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1266095如需转载请自行联系原作者

RQSLT
相关文章
|
1月前
|
C++
Visual Studio 2022编译错误 Error MSB8041-此项目需要MFC库解决方案
Visual Studio 2022编译错误 Error MSB8041-此项目需要MFC库解决方案
|
2月前
|
C++
MFC -- 网络通信编程
MFC -- 网络通信编程
13 0
VC6和VS2005(VC8)各项目默认运行时库
VC6和VS2005(VC8)各项目默认运行时库
|
C++
MFC -- 网络通信编程
MFC -- 网络通信编程
71 0
MFC -- 网络通信编程
解决Visual Studio 2005中找不到MFC80UD.dll的问题
今天用VS2005建立一个MFC项目,在运行时遇到下面这个找不到MFC80UD.dll的问题。 这个问题可能是Manifest 引起的,因此我们可以通过修改项目->属性->清单工具->输入输出,把“嵌入清单”选“否”,然后编译、链接、运行即可。
1197 0