当ADOStoredProc中参数为中文时报错,如何处理

scoredhigh 2013-03-05 06:09:28
当ADOStoredProc中参数为中文时如何处理?

数据库是mysql
存储过程为
CREATE PROCEDURE sp_save_patient(prmName char(24), prmMedno char(24))
BEGIN
insert into tbl_patient values(prmName, prmMedno);
END

BCB中的代码为
ADOStoredProc->Close();
ADOStoredProc->ProcedureName = "sp_save_patient";
ADOStoredProc->Parameters->Clear();
ADOStoredProc->Parameters->CreateParameter("@prmName", ftString, pdInput, 30, NULL);
ADOStoredProc->Parameters->CreateParameter("@prmMedno", ftString, pdInput, 30,NULL);
ADOStoredProc->Parameters->ParamByName("@prmName")->Value = "张三";
ADOStoredProc->Parameters->ParamByName("@prmMedno")->Value = "0001";
ADOStoredProc->ExecProc();

以上代码出错,如果参数“@prmName”为英文就可以,
ADOStoredProc->Parameters->ParamByName("@prmName")->Value = "zhangsan";
怎么解决
...全文
699 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
scoredhigh 2013-03-07
  • 打赏
  • 举报
回复
引用 8 楼 ccrun 的回复:
数据库是UTF-8的?那这样再试试: C/C++ code ? 12 ADOStoredProc->Parameters->ParamByName("@prmName")->Value = AnsiToUtf8("张三"); ADOStoredProc->Parameters->ParamByName("@prmMedno")->Value = AnsiToUtf8……
可以啊,多谢了
ccrun.com 2013-03-07
  • 打赏
  • 举报
回复
数据库是UTF-8的?那这样再试试:
ADOStoredProc->Parameters->ParamByName("@prmName")->Value = AnsiToUtf8("张三");
ADOStoredProc->Parameters->ParamByName("@prmMedno")->Value = AnsiToUtf8("0001");
scoredhigh 2013-03-07
  • 打赏
  • 举报
回复
引用 3 楼 ccrun 的回复:
将字符串转成String,如: C/C++ code ? 12 ADOStoredProc->Parameters->ParamByName("@prmName")->Value = String("张三"); ADOStoredProc->Parameters->ParamByName("@prmMedno")->Value = String("0001");……
试过了,不行啊
scoredhigh 2013-03-07
  • 打赏
  • 举报
回复
引用 2 楼 ksrsoft 的回复:
出错提示是什么
提示错误:“Project DataBase_Server.exe raised exception class EOleException with message '[MySQL][ODBC 5.2(w) Driver][mysqld-5.5.20]Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'prmName' at row 1'. Process stopped. Use Step or Run to continue.”
scoredhigh 2013-03-07
  • 打赏
  • 举报
回复
引用 1 楼 dataxdata 的回复:
看看数据库所使用的代码表,可能和中文的编码方式有关
数据库是utf8编码的,我用此存储过程直接在数据库里执行时可以的。 这说明是BCB里的问题,我在连接符里设置了"Provider=MSDASQL.1;Password=center_db;Persist Security Info=True;User ID=center_db;Data Source=ZDDB;charset=utf8",也没什么用
我不懂电脑 2013-03-06
  • 打赏
  • 举报
回复
用WideString
ccrun.com 2013-03-06
  • 打赏
  • 举报
回复
将字符串转成String,如:
ADOStoredProc->Parameters->ParamByName("@prmName")->Value = String("张三");
ADOStoredProc->Parameters->ParamByName("@prmMedno")->Value = String("0001");
缘中人 2013-03-06
  • 打赏
  • 举报
回复
出错提示是什么
dataxdata 2013-03-06
  • 打赏
  • 举报
回复
看看数据库所使用的代码表,可能和中文的编码方式有关
内容概要:本文围绕基于混沌系统与DNA编码的彩色图像加密技术展开研究,提出了一种结合混沌系统伪随机置乱与DNA编码高维扩散特性的多层级图像加密解密方案。通过分离RGB三通道、混沌序列生成、像素位置置乱、DNA编码与灰度扩散等步骤实现图像加密,并完成相应的逆过程解密。研究系统分析了算法的密钥敏感性、像素相关性降低效果,并全面评估了其在高斯噪声、椒盐噪声干扰下的抗噪声性能,以及在不同面积和位置裁剪下的抗裁剪鲁棒性。结果表明,该算法具备极大的密钥空间、强密钥敏感性、优良的抗干扰能力与卓越的抗裁剪性能,能有效保障图像在复杂传输环境下的信息安全。; 适合人群:具备一定图像处理、密码学基础知识,从事信息安全、多媒体通信、算法设计等相关领域的研究生或科研人员。; 使用场景及目标:①应用于对图像传输安全性要求高的场景,如军事通信、医疗影像保护、数字版权管理等;②为研究新型图像加密算法的设计与鲁棒性评估提供理论参考和技术实现方案。; 阅读建议:建议读者结合Matlab代码实践加密解密流程,重点关注混沌系统参数设置、DNA编码规则设计对加密效果的影响,并通过添加不同强度噪声和裁剪攻击来验证算法鲁棒性,深入理解其安全机制。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧