Qt结合ADOX建立Access数据库文件(一)

Qt结合ADOX建立Access数据库文件

楼主用Qt5开发一款软件,其中需要新建Access数据库文件,楼主找了很久,都是教去连接Access数据库的方法,没有说到新建的方法,最后都说用ADOX去做,但是给的例子都不是很完整或者不可行,所以楼主整理保存以及分享一个完整可行的例子
1.首先去到这个这个目录下C:\Program Files\Common Files\System\ado查看是否有msado15.dll以及msadox.dll这两个dll,一般来说只要安装office套件都会有的(真的没有,下面提供链接给你下载)
2.新建工程走起,工程新建stdafx.h文件,并将文件加入到填写以上两个dll的路径,注意不是#include,是#import,如下如所示
在这里插入图片描述
3.核心代码

 HRESULT hr = create_access.CreateInstance(__uuidof(ADOX::Catalog));
    if(SUCCEEDED(hr))
    {
        try
        {
            std::string str = "Provider=Microsoft.JET.OLEDB.4.0;Data source= ";
            std::string path_str;
            path_str =std::string((const char *)path.toLocal8Bit().constData());
            std::string obj_str = str+path_str;
            const char *p_obj_Str = obj_str.c_str();
            create_access->Create(p_obj_Str);
            create_access.Release();
            qDebug()<<QStringLiteral("创建成功");
        }
        catch (_com_error &e)
        {
            std::string error_str =(char*)e.Description();
            qDebug()<<QStringLiteral("捕捉到错误:")<<QString::fromLocal8Bit(error_str.data());
        }
    }
    else
    {
        qDebug()<<QStringLiteral("初始化失败");
    }

4.运行结果
在这里插入图片描述
5.其他说明
a.此时的数据库文件空白的,因为没有创建表;
b.用ADOX创建Access数据库文件之后,就可以用Qt的QSql去操作了,包括创建表,查询等,这方面网上资料比较多,楼主就不做多描述了;
c.对于AODX这个其他的使用,楼主还不清楚,也还没有去了解,只是网上真的找不到创建Access数据库文件的方法,楼主就此做一个补充;
d.不知道为啥,选择msvc2015 64bit编译的时候,编译没有报错,生成Access数据库文件的捕捉到错误,没有注册类,这个楼主暂时还不知道为啥,因为我只需要32位的程序,暂时不理,等项目搞完,再去深入理解ADOX这个东西
msado15.dll以及msjro.dll
CreateAccess完整工程下载

猜你喜欢

转载自blog.csdn.net/Joker__123/article/details/106875838
今日推荐