OCI编程中BindByPos绑定时总出错,求解!!!

Allen0208 2012-07-31 03:49:28
OCI编程时,我绑定的数据如果为数值型字符串时(char * sno[] = "123"),最后可以成功入库,但如果绑定不为数值字符串(char * sno[] = "abc")时,总不能入库,不知为何,求高手指点。部分代码如下:


if(g_IndbInterFace.ConnectToDB(chUserName, chPassword, chServerName))
{
printf("can not connect to DB!");
return -1;
}
printf("connect succeed!\n");

int status;
char no[] = "333";
char name[] = "aaa";
OCIBind *bndhp1, *bndhp2;
char chInsertArray[1024];

sprintf(chInsertArray,"insert into s(sno,sname) values(%s,%s)",no,name);

g_IndbInterFace.SqlBind(chInsertArray);

if(status=OCIBindByPos(stmthp,&bndhp1,errhp,(ub4)(1),
(dvoid *)(no),(sb4)(FIELD_LEN+1),
SQLT_STR,(dvoid *)0,(ub2 *)0,(ub2 *)0,
(ub4)0, (ub4 *)0,(ub4)OCI_DEFAULT))
{
WriteAlert("DataInBind(433) FAILED: OCIBindByPos()");
}
if(status=OCIBindByPos(stmthp,&bndhp2,errhp,(ub4)(2),
(dvoid *)(&b),(sb4)(FIELD_LEN+1),
SQLT_STR,(dvoid *)0,(ub2 *)0,(ub2 *)0,
(ub4)0, (ub4 *)0,(ub4)OCI_DEFAULT))
{
WriteAlert("DataInBind(433) FAILED: OCIBindByPos()");
}
g_IndbInterFace.DataInExec(1,0);
g_IndbInterFace.TransCommit();
g_IndbInterFace.DisConnectToDB();
...全文
428 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文研究了面向复杂海洋环境的无人水面艇(USV)编队控制问题,提出了一种双层模型预测控制(MPC)理论与鲁棒协同控制方法。上层负责编队构型的优化与全局路径规划,通过求解优化问题实现多艇协同构型的动态调整;下层基于非线性MPC框架实现各无人艇的运动控制与精确轨迹跟踪,充分考虑了系统动力学约束、外部环境干扰(如风浪流)及模型不确定性。通过引入鲁棒控制策略,增强了系统在复杂动态海洋环境下的抗干扰能力与控制稳定性。研究在Matlab平台上完成了算法的完整代码实现与仿真验证,结果表明所提方法能够有效实现多艇在复杂环境下的高精度、强鲁棒性协同编队控制。; 适合人群:具备自动控制、机器人、海洋工程或相关专业背景,熟悉Matlab/Simulink仿真工具,从事多智能体协同控制、无人系统自主导航或模型预测控制算法研究的研发人员与研究生。; 使用场景及目标:①为无人水面艇在复杂、动态、不确定的海洋环境下执行编队任务提供先进的控制理论与技术方案;②通过完整的Matlab代码实现,方便研究人员复现、验证、改进双层MPC与鲁棒协同控制算法;③促进模型预测控制与鲁棒控制理论在多智能体系统、无人装备协同作业等领域的深度融合与应用发展。; 阅读建议:建议读者结合提供的Matlab代码,深入剖析双层控制架构的设计逻辑、MPC优化问题的构建过程以及鲁棒性处理机制的具体实现,重点关注算法如何处理模型误差、外部干扰和系统硬约束,以全面掌握其在复杂场景下的工程应用潜力。

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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