利用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
相关文章
[MFC][bug记录]MFC移植对话框属性
[MFC][bug记录]MFC移植对话框属性
|
6月前
|
C++
MFC -- 网络通信编程
MFC -- 网络通信编程
60 0
|
6月前
|
C++
MFC创建带窗口的DLL
MFC创建带窗口的DLL
137 0
|
C++
MFC -- 网络通信编程
MFC -- 网络通信编程
88 0
MFC -- 网络通信编程
|
Windows C++ API
MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法
MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法  文档将概述MFC中定制自定义控件的3种方法: 拥有者绘制控件(Owner Drawing Control and Menu)   自绘制控件(self drawing contro...
1536 0
|
C++
将MFC Grid control封装为DLL的做法及其在DLL中的使用方法
MFCGrid control是一款非常优秀的网格控件,支持非常丰富的界面元素,如下图:   因而在数据库程序及报表程序应用较为广泛,其源码可以在下面下载到: MFC Grid control2.27源码下载        MFC Gridcontrol的作者并没有将其封装为DLL,因为在程序的多个模块复用这个控件比较麻烦(需要在多个工程中加入其源码),因此最好将其封装为一个DLL。
1710 1
|
SQL 存储 数据库连接
MFC连接Access讲解(3合1) .
方法一: 1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用 #import引用它既可。
1308 0