Vc++中Ado动态创建access数据库

2016-02-19 21:06 13 1 收藏

今天图老师小编要跟大家分享Vc++中Ado动态创建access数据库,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - 编程语言 】

ado技术目前已经成为连接数据库的主流技术,下面我来介绍如何使用ado来动态创建access数据库。为了使用ado,必须引入微软的两个动态连接库msadox.dll和msado15.dll:

    #pragma warning (disable: 4146)
    #import "c:Program FilesCommon Filessystemadomsadox.dll"
    #import "c:Program FilesCommon Filessystemadomsado15.dll" no_namespace rename("EOF", "EndOfFile")
    #pragma warning (default: 4146)

    将上述代码加入到stdafx.h文件中,由于ado是com组件,因此使用ado之前还要初始化com环境:

    CoInitialize(NULL);

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

    下面是一个在access数据库中创建表的sql语句的例子:

    create table test
   (
   nametext(20) WITH COMPRESSION not null,
     scoredecimal(12,4) not null default 0,
     ID smallint not null default 0,
     birthday date,
     sex char(1),
     CONSTRAINT CK_CH_SEX Check(SEX in ('N','V')),
     CONSTRAINT PK_ID Primary Key (ID)
     );
    使用ADOX::CatalogPtr来创建mdb文件:
    HRESULT hr = S_OK;
    //Set ActiveConnection of Catalog to this string
    CString strcnn(_T("Provider=Microsoft.JET.OLEDB.4.0;Data source = d:est.mdb"));
    try
    {
ADOX::_CatalogPtr m_pCatalog = NULL;
hr = m_pCatalog.CreateInstance(__uuidof (ADOX::Catalog));
if(FAILED(hr))
 {
_com_issue_error(hr);
 }
 else
 {
m_pCatalog-Create(_bstr_t(strcnn)); //Create MDB
 }
     }
    catch(_com_error &e)
    {
 // Notify the user of errors if any.
 AfxMessageBox(_T(“error“));
     }

     创建一个连接对象打开刚刚建立的mdb文件:
    _ConnectionPtr g_pConn;
    g_pConn.CreateInstance(__uuidof(Connection));
    g_pConn-Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:est.mdb;", "", "", adConnectUnspecified);

    下面函数用来执行sql文件中的sql语句:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

    // Function name : RunSqlScript
    // Description: 执行SQL脚本, peckermen@163.com, 2003-09-15
    // Return type: BOOL 成功返回TRUE
    // Argument : LPCSTR SqlScriptFile SQL脚本文件名
    // Argument : char separator SQL 分割符号, 缺省';'
    // Argument : char RemarkSQL 注释符号, 缺省'-'
    BOOL RunSqlScript(LPCSTR SqlScriptFile, char separator = ';', char Remark = '-')
    {
    BOOL bRet = FALSE;
    CFileFind finder;
    CString ErrLong;
    if (finder.FindFile(SqlScriptFile) == TRUE)

    {
   CFile fSql;
   TCHAR *buffer, *pSQL, *p;
   fSql.Open(SqlScriptFile,Cfile&::modeRead);
   UINT nFileLength = fSql.GetLength();
   buffer = (TCHAR *)malloc((nFileLength + 1) * sizeof(TCHAR));
   _tcsnset(buffer, TCHAR('

来源:http://www.tulaoshi.com/n/20160219/1625278.html

延伸阅读
在StdAfx.h文件中,#endif // _AFX_NO_AFXCMN_SUPPORT之前,加入: #import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF","adoEOF") 接着, 在My.cpp文件InitInstance方法中, AfxEnableControlContainer();之前,加入:  if(!AfxOleInit())  //初始化  { AfxMessageBox( " initialize false!" ); } ...
摘要 ---- 本文较为详细的介绍了一个使用OdbC对数据库进行操作的CdataBaseOperate类的建立,并给出了几个主要函数的具体实现,以及该类在实际的应用程序中的使用。 ---- 众所周知VC++的MFC类库为编程者编制好了对数据库操作的类,编程者可以使用向导建立一个与数据库联结并对数据库进行操作的应用程序,不需要编制任何代码,这无疑为编程人...
介绍 VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。   正文 一、ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。ADO 最主要的...
标签: ASP
  HOWTO: Compacting Microsoft Access Database via ADO -------------------------------------------------------------------------------- The information in this article applies to: ActiveX Data Objects (ADO), versions 2.1, 2.5, 2.6 Microsoft OLE DB Provider for Jet, version 4.0 --------------------------------...
DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //声明连接字符串 Const SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +'Jet OLEDB:Database Password=%s;&#...

经验教程

915

收藏

23
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部