ADO建ACCESS数据库

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

两种都是使用ADOX的Catalog,只是在引入的时候有点区别,使用了名字空间:

1

需要同时用 ADO 和 ADOX,引入方法:

#import "C:\program files\common files\system\ado\msado15.dll" rename("EOF","adoEOF")

#import "C:\Program Files\Common Files\system\ado\msadox.dll"

因为两个库的namespace 是不同的,第一个是ADODB,第二个是ADOX,注意上面第一行通常加的no_namespace去掉了!

在使用ADO所属的名字空间里的变量,函数时,在前面加上ADODB::

在使用ADOX所属的名字空间里的变量,函数时,在前面加上ADOX::

HRESULT hr = S_OK;

hr = ::CoInitialize(NULL);

if(SUCCEEDED(hr))

{

HRESULT hr = S_OK;

// Define ADOX object pointers.

// Initialize pointers on define.

// These are in the ADOX:: namespace.

ADOX::_CatalogPtr m_pCatalog = NULL;

//Set ActiveConnection of Catalog to this string

_bstr_t strcnn("Provider=Microsoft.JET.OLEDB.4.0;Data source=c:\\new.mdb");

try

{

m_pCatalog.CreateInstance(__uuidof(ADOX::Catalog));

m_pCatalog->Create(strcnn);

}

catch(_com_error &e)

{

// Notify the user of errors if any.

AfxMessageBox(e.ErrorMessage());

}

}

参考:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/admthcreatexvc.asp

2

这种方式的引入有些区别

先是在头文件.h添加:

#import "c:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADOX")

#import "c:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADO") rename("EOF", "EndOfFile")

#pragma warning (disable: 4146)using namespace ADO;

然后在实现文件.cpp里:

using namespace ADOX;

_CatalogPtr m_pCatalog;

m_pCatalog.CreateInstance(__uuidof(Catalog));

try

{

//m_pCatalog.CreateInstance(__uuidof(ADOX::Catalog));

m_pCatalog->Create(strcnn);

}

catch(_com_error &e)

{

// Notify the user of errors if any.

AfxMessageBox(e.ErrorMessage());

return FALSE;

}

using namespace ADO;//如果之后的代码用的是ado的话要加这一句

个人感觉第二种用起来方便些。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航