C++中ADO调用mysql存储过程失败,诡异的语法错误,求解中,附源码

不管怎么调整,死活都出现下面的错误

C++ADO代码我实在找不到什么错误了,难道是MySQL有什么问题,或者有其他需要注意的地方(类似存储过程权限之类的,我都看了,我用root连接啊)

navicat 查询编辑器 执行 call PrGs_GameUser_Login('sdfdsfdsfd') 是没有问题的

根据下面错误信息,难道ADO的CommandText 多了中括号“{”“}”,所以出错?

执行存储过程失败!

CommandText={ call PrGs_GameUser_Login(?) }

Description=You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ call PrGs_GameUser_Login('sdfdsfdsfd') }' at line 1

ErrorMessage()=I

Error()=80040e14

Source()=Microsoft OLE DB Provider for ODBC Drivers

存储过程 PrGs_GameUser_Login 没啥可说的,就是一个输入参数,内容是空的

C++源代码

_ConnectionPtr m_Connection; // 数据库连接对象

//_RecordsetPtr m_Recordset; // 记录集对象

_CommandPtr m_Command; // 命令对象

if (m_Connection != NULL || m_Command != NULL/* || m_Recordset != NULL*/)

{

return;

}

try

{

CoInitialize(NULL);

if (FAILED(m_Connection.CreateInstance(__uuidof(Connection))))

{

return;

}

/*if (FAILED(m_Recordset.CreateInstance(__uuidof(Recordset))))

{

return;

}*/

if (FAILED(m_Command.CreateInstance(__uuidof(Command))))

{

return;

}

m_Connection->CursorLocation = adUseClient;

// 把结果集和命令对象关联起来

//m_Recordset->PutRefSource(m_Command);

//m_Recordset->CursorLocation = adUseClient;

// 只支持存储过程调用

m_Command->CommandType = adCmdStoredProc;

}

catch (...)

{

return;

}

if (m_Connection->State != adStateClosed)

{

return;

}

if (FAILED(m_Connection->Open("Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.107;Port=3306;Option=4;Database=yxgamedb;Uid=root;Pwd=123456;"

, L"", L"", adConnectUnspecified)))

{

return ;

}

m_Connection->CommandTimeout = 60;

m_Command->CommandTimeout = 60;

m_Command->ActiveConnection = m_Connection;

std::string userName = "sdfdsfdsfd";

//int outParam = 4;

m_Command->CommandText = L"PrGs_GameUser_Login";

_ParameterPtr spParam1 = m_Command->CreateParameter("UserName", adVarChar, adParamInput, 33, (_variant_t)(userName.c_str()));

if (FAILED(m_Command->Parameters->Append(spParam1)))

{

return;

}

/*_ParameterPtr spParam2 = m_Command->CreateParameter("OutParam", adInteger, adParamOutput, 4, (_variant_t)outParam);

if (FAILED(m_Command->Parameters->Append(spParam2)))

{

return;

}*/

try

{

m_Command->Execute(NULL, NULL, adExecuteNoRecords);

}

catch (_com_error &e)

{

PrintInfoLog("执行存储失败!/n CommandText=%s/n Description()=%s/n ErrorMessage()=%s/n Error()=%08lx/n Error()=%s",

(LPSTR)m_Command->CommandText, (LPSTR)e.Description(), (LPSTR)e.ErrorMessage(),

e.Error(), (LPSTR)e.Source());

return;

}

------解决方案--------------------

你的MYSQL版本与ODBC的版本是多少? 以前的版本上是有类似这个BUG的。

微信 赏一包辣条吧~

支付宝 赏一听可乐吧~

c++调用mysql存储过程_C++中ADO调用MySQL存储过程失败,诡异的语法异常,求解中,附源码...相关推荐

  1. 【Android App】人脸识别中借助摄像头和OpenCV实时检测人脸讲解及实战(附源码和演示 超详细)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 一.借助摄像头实时检测人脸 与Android自带的人脸检测器相比,OpenCV具备更强劲的人脸识别功能,它可以通过摄像头实时检测人脸,实时检测的预览空 ...

  2. Matlab之在城市环境中基于动态占用网格图的的运动规划仿真(附源码)

    目录 一.介绍 二.设置场景和基于网格的跟踪器 三.设置运动规划器 四.结果 五.总结 六.程序 此示例演示如何使用 Frenet 参考路径在城市驾驶场景中执行动态重新规划.在此示例中,将使用本地环境 ...

  3. Android App接管手势处理TouchEvnet中单点触摸和多点触控的讲解及实战(附源码 超简单实用)

    运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一.单点触摸 dispatchTouchEvent onInterceptTouchEvent onTouchEvent三个方法的输入参数都是手势 ...

  4. springboot+mysql+基于Java的学生请销假审批管理系统的设计与实现 毕业设计-附源码130939

    摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代. ...

  5. 如何用Python从文件中读取学生成绩,并计算最高分/最低分/平均分(附源码)

    兄弟们, 今天咱们试试用Python从文件中读取学生成绩, 并计算最高分/最低分/平均分. 涉及知识点 文件读写 基础语法 字符串处理 循环遍历 代码展示 模块 import platform 定义获 ...

  6. Python启发式算法中爬山法的讲解及解方程问题实战(超详细 附源码)

    一.启发式算法 还有一类重要的迭代法,它的迭代关系式不依赖问题的数学性能,而是受某种自然现象的启发而得到,称为启发式算法(Heuristic Algorithm),如爬山法.遗传算法.模拟退火算法.蚁 ...

  7. 使用RestTemplate进行feignclient调用(附源码)

    使用RestTemplate进行feignclient调用(附源码) 问题背景 项目搭建 项目测试 心得 Lyric: 有一条热昏头的响尾蛇 问题背景 feignclient的本质其实也是http调用 ...

  8. java中batch基础_详解Spring batch 入门学习教程(附源码)

    详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...

  9. python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细, 附源码)——增删改查篇

    python:pyqt5+mysql=学生信息管理系统(图文并茂,超详细, 附源码)--增删改查篇 前言 一.主界面的样式 二.学生信息的增,删,改,查 1.增加学生信息 2.删除学生信息 3.更改学 ...

最新文章

  1. ASP.NET页面缓存介绍
  2. php控制 css样式,div css样式控制案例
  3. Java I/O系统学习系列三:I/O流的典型使用方式
  4. java 执行外部命令 苹果_Java中执行外部命令
  5. 微信小程序,引用扩展组件提示“没有找到可以构建的NPM包”
  6. apache支持mysql ubuntu_Ubuntu+Apache+PHP+Mysql环境搭建(完整版)
  7. 最近和很多创业者和中小企业老板沟通
  8. 注释可以出现在c语言任何位置,在c程序中,注释语句只能位于一条语句的后面吗...
  9. 华为hs8145v5如何改桥接_口译vlog | 跟我一起去华为东莞“欧洲小镇”吧!
  10. 帅案之上——作为开发者的远见与卓识
  11. CSS在Mac /Win上兼容显示
  12. 开发那些坑之使用百川趣拍sd集成真实项目
  13. win10自动聚焦无法更换壁纸
  14. 《游戏编程》第一部 基础篇
  15. 换个姿势做运维!GOPS 2022 · 深圳站精彩内容抢先看
  16. Centos7 添加大于2T磁盘,使用GPT硬盘格式和XFS文件系统
  17. Arduino学习笔记 类比信号,可变电阻
  18. php生成图片表格自动换行_PHP GD库生成图片自动换行函数,自动分页函数
  19. 跨平台的桌面应用开发,技术框架选择
  20. Ubuntu编译ijkplayer so库并播放本地raw/assets文件

热门文章

  1. java压缩流的用法_Java对压缩包的操作(解压缩)
  2. python多分支实现四则运算器代码_一份让Python疯狂加速的工具合集!
  3. centos mysql 5.6.19_Centos5.8 安装 MySQL5.6.19
  4. Batch Norm常用方法
  5. 肝!Python 网络编程
  6. 再见,Postman...
  7. python论坛签到_论坛自动签到教程
  8. 如何用c语言实现贪吃蛇登录界面,c语言贪吃蛇UI界面版.docx
  9. 机器学习实战-聚类分析KMEANS算法-25
  10. 数据预处理:原始数据集快速分类的方法,numpy的使用技巧,数据的row=mask的column