Mr·GE 2024-03-16 16:03 采纳率: 51.5%
浏览 5
已结题

查询access数据问题

激活数据表的时候报错
NON-FATAL RUN-TIME ERROR: "5.4.c", line 996, col 21, thread id 700:
Function DBActivateMap: (return value == -10 [0xfffffff6]).
Native error code -2147217904 0x80040e10 Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Microsoft Access 驱动程序] 参数不足,期待是 9。

img


这是什么原因造成的?代码看了半天也没发现有什么问题啊
这是数据表

img

            GetCtrlVal(queryHandle,QUERYPANEL_STRING,type1);
            GetCtrlVal(queryHandle,QUERYPANEL_STRING_2,num1);
            
            if(strcmp(type1,"")==0 && strcmp(num1,"")==0)
            {
                flag=1; //查询所有
            }
            else if(strcmp(type1,"")!=0 && strcmp(num1,"")==0)
            {
                flag=2;//按型号查询
            }
            else if(strcmp(type1,"")==0 && strcmp(num1,"")!=0)
            {
                flag==3;//按编号查询
            }
            else if(strcmp(type1,"")!=0 && strcmp(num1,"")!=0)
            {
                flag==4;//按型号编号查询
            }
            
            memset(type,0,sizeof(type));
            memset(num,0,sizeof(num));
            memset(test,0,sizeof(test));
            memset(TIME,0,sizeof(TIME));
            jiazaili=0.;
            load=0.;
            y1=0.;
            y2=0.;
            z1=0.;
            z2=0.;
            
            hmap=DBBeginMap(hdbc);
            DBMapColumnToInt (hmap, "Series",&row,&rowstatus);
            DBMapColumnToChar (hmap, "Type", 50, type, &typestatus, "");
            DBMapColumnToChar (hmap, "Number", 50, num, &numstatus, "");
            DBMapColumnToDouble (hmap, "Jiazaili/N", &jiazaili,&jiazailistatus);
            DBMapColumnToDouble (hmap, "Load/Bar", &load,&loadstatus);
            DBMapColumnToDouble (hmap, "Y1/μm", &y1,&y1status);
            DBMapColumnToDouble (hmap, "Y2/μm", &y2,&y2status);
            DBMapColumnToDouble (hmap, "Z1/μm", &z1,&z1status);
            DBMapColumnToDouble (hmap, "Z2/μm", &z2,&z2status);
            DBMapColumnToChar (hmap, "Test", 50,test,&teststatus,"");
            DBMapColumnToChar (hmap, "Time", 30,TIME,&timestatus,"");
            hstmt = DBActivateMap (hmap, "测试结果");//激活数据表

代码的最后一句执行的时候报错

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-16 16:09
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题原因:错误信息显示为“参数不足,期待是 9”,这说明在执行激活数据表操作时,缺少必要的参数。 解决方法:需要检查代码中对数据表的激活操作相关参数是否正确传递。在这段代码中,可以看到激活数据表是使用DBActivateMap函数进行的,需要确认这个函数中传递的参数是否正确。 具体来说,DBActivateMap函数需要传递两个参数,分别是数据映射句柄和表名。在这段代码中,可以看到表名是正确传递的,但是没有显示数据映射句柄是如何生成的。 如果没有正确生成数据映射句柄,就会导致缺少必要的参数而报错。因此,需要检查之前的代码,看看是否有漏掉生成数据映射句柄的部分。 示例代码: hmap = DBBeginMap(hdbc); // 生成数据映射句柄 DBMapColumnToInt (hmap, "Series", &row, &rowstatus); DBMapColumnToChar (hmap, "Type", 50, type, &typestatus, ""); DBMapColumnToChar (hmap, "Number", 50, num, &numstatus, ""); DBMapColumnToDouble (hmap, "Jiazaili/N", &jiazaili,&jiazailistatus); DBMapColumnToDouble (hmap, "Load/Bar", &load,&loadstatus); DBMapColumnToDouble (hmap, "Y1/μm", &y1,&y1status); DBMapColumnToDouble (hmap, "Y2/μm", &y2,&y2status); DBMapColumnToDouble (hmap, "Z1/μm", &z1,&z1status); DBMapColumnToDouble (hmap, "Z2/μm", &z2,&z2status); DBMapColumnToChar (hmap, "Test", 50,test,&teststatus,""); DBMapColumnToChar (hmap, "Time", 30,TIME,×tatus,""); hstmt = DBActivateMap(hmap, "测试结果"); // 激活数据表
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月25日
  • 创建了问题 3月16日

悬赏问题

  • ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败
  • ¥15 复合卡卡号轨道写入芯片卡