金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1778|回复: 4

编辑数据库警告 C6284 传递了对象作为 _Param_(2)

[复制链接]

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
发表于 2022-8-1 05:45 | 显示全部楼层 |阅读模式
老师您好:
     过去我在VS2019以前版本写数据库,都没有错误,现在在VS2022里面碰到一个问题,代码如下:


CString* qhpz(void)             //查询期货品种,因为直接查询,需要更改access的表属性,所以变相查询数据库中有多少表格
{
    CString* qhpzdm = new CString;
    sjkmk *sjk= new sjkmk();
    int xhs=0;
    CString qhsl= sjk->qhpzzh(0, 20);
    xhs = _ttoi(qhsl);
    sjk->OpenConnection();
    if (sjk->m_pConnection->State == adStateOpen)
    {
        int xls=0;
        for (int i = 0; i < xhs; i++)
        {
            for (int j = 0; j < 12; j++)
            {
                CString qhmc;
                qhmc = sjk->qhpzzh(i, j);
                CString cxb;
                cxb.Format(_T("SELECT top 1 time FROM %s"), qhmc);  //这个出现了下面的警告        C6284
                sjk->m_pRecordset = sjk->m_pConnection->Execute((_bstr_t)cxb, &(sjk->RecordsAffected), adCmdText);
                if (!(sjk->m_pRecordset->EndOfFile) && !(sjk->m_pRecordset->BOF))
                {
                    qhpzdm[xls] = qhmc;             //这句提示:严重性        代码        说明        项目        文件        行        禁止显示状态 警告        C6385        正在从 "qhpzdm" 读取无效数据。        jztsjkwh        C:\Weisoft Stock(x64)\FmlDevelope\jztsjkwh\jztsjkwh\sjk.cpp        261       

                    ++xls;
                }
            }
        }
    }

    return qhpzdm;
}
严重性        代码        说明        项目        文件        行        禁止显示状态
警告        C6284        传递了对象作为 _Param_(2),而对“ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Format”的调用需要一个字符串,实际类型: “class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >”。        jztsjkwh        C:\Weisoft Stock(x64)\FmlDevelope\jztsjkwh\jztsjkwh\sjk.cpp        257       
我尝试更改qhmc的赋值,依旧是不行,编译是通过了,但是错误是有的啊,不知道我怎么修改才能行啊?



补充内容 (2022-8-1 07:12):
经过测试,过去对的语句,比如:
CString d7zqb;
                     d7zqb.Format(_T("SELECT top 1 time FROM %s where right(time,2)=%d order by time desc"),pzdm,7);
在VS2022里面都给了错误提示,麻烦老师百忙中看看

补充内容 (2022-8-1 10:59):
Format()的问题没有解决,后面数组赋值的错误找到了,new那个地方漏写了[]
回复

使用道具 举报

0

主题

2635

帖子

2635

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2022-8-1 19:18 | 显示全部楼层
qhpzdm指针用错了
应该*qhpzdm=

format应该是参数错误,要看具体信息
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2022-8-1 20:09 | 显示全部楼层
老师是这样的,这些句子的变量CString,如果不是定义在循环体内部,那么不会报错;定义在循环内部就报错了。但是在VS2019的时候还是允许这样定义的。如果不这样定义,那就有点麻烦,下一个循环需要新变量或者清空前面的变量,那不是很麻烦啊。所以这个东西,VS2022修改的有点没有人情味了。那个函数指针或new指针,在VS2019上是允许的。
回复

使用道具 举报

1

主题

4218

帖子

4218

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2022-8-3 17:39 | 显示全部楼层
变量定义在循环内外应该都可以,应该是你的用法都问题吧
回复

使用道具 举报

36

主题

136

帖子

146

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
永杰
 楼主| 发表于 2022-8-4 15:50 | 显示全部楼层
这个不能算用法问题,在mfc框架下使用的,如果不加mfc,只是咱们金字塔的那个接口,是不存在问题的,因为加上了mfc对话框,所以vs2022下面就有了这个问题
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-10 07:22 , Processed in 0.278430 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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