金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1562|回复: 4

C++中怎么把字符串lpszFile用在Data Source=后面作为文件路径

[复制链接]

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
发表于 2022-3-21 17:05 | 显示全部楼层 |阅读模式
老师您好:
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
……
CString lpszFile=sPath+"\\jztsjk.accdb";
……
_ConnectionPtr m_pConnection;  
        _RecordsetPtr m_pRecordset;  
        HRESULT hr;

hr = m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.16.0;Data Source=jztsjk.accdb","","",adModeUnknown); //这句中的jztsjk.accdb怎么使用lpszFile替换?
上面代码中,网上查找资料都是类似Data Source=jztsjk.accdb这种或者直接写上具体路径,但是咱们金字塔有可能一台电脑安装了几个副本,所以会产生不同路径的lpszFile,我就需要多个数据库,那么我怎么使用lpszFile这个不确定的路径呢?因为我不是专业程序员,这个不清楚,烦请老师帮忙解决。



补充内容 (2022-3-21 18:29):
不知道下面这样写是不是对的:
_bstr_t strConnect ="Provider=Microsoft.ACE.OLEDB.16.0;Data Source="+lpszFile;
                        hr = m_pConnection->Open(strConnect,"","",adModeUnknown);
回复

使用道具 举报

4

主题

132

帖子

143

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2022-3-21 22:29 | 显示全部楼层
C++中的CString字符串可以实现 + = 等常规操作符,你的可以通过下面代码实现

hr = m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.16.0;Data Source="+CString(lpszFile),"","",adModeUnknown);
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2022-3-22 08:03 | 显示全部楼层
老师,按上面的方法放进去不行,因为只有Open的第一个参数就默认是字符串了,但是第一个字符串应该是_bstr_t类型,所以那样计算后不能编译

补充内容 (2022-3-22 08:43):
CString换_bstr_t可以通过编译,但是不知道后面能不能运行,我就是不知道_bstr_t类型能不能使用+运算符
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2022-3-22 09:52 | 显示全部楼层
本帖最后由 资深技术02 于 2022-3-22 10:18 编辑

这样看下呢


CString sPath = "";
        TCHAR tchar[256];
        GetModuleFileName(NULL,tchar,256);
        sPath.Format(_T("%s"),tchar);
        TCHAR A = TEXT( '\\');

        sPath = sPath.Left(sPath.ReverseFind(A)+1);

        CString lpszFile = sPath+"jztsjk.accdb";
        string strPath = lpszFile.GetBuffer(0);
        _bstr_t strConnect = strPath.c_str();
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2022-3-22 10:31 | 显示全部楼层
好的,我慢慢测试一下吧,如果不行再麻烦老师了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-12-22 13:02 , Processed in 0.274083 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表