有兄弟用mingw编译过otl吗?无法正确获取数据库操作错误信息啊

iwong 2012-01-06 12:01:45
IDE用的Code::Blocks,编译环境TDM-GCC,算是mingw的一个分支版本吧,OTL已经更新到最新版本了

代码也是照着OTL文档写的,编译、链接都没问题

包含文件时,用了OTL_ORA10G_R2宏定义,如下:
#define OTL_ORA10G_R2
#include "otl/otlv4.h"

现在的问题是,rlogon失败后,抛出异常,但是 otl_exception::code 为0,otl_exception::msg 为空字符串,无法获取到错误信息

使用VC编译同样代码,otl_exception::code 实际为12154

在Code::Blocks里调试代码,发现是这里的问题:

 void rlogon(const char* connect_str,const int auto_commit=0)
{
throw_count=0;
retcode=connect_struct.rlogon(connect_str,auto_commit);
if(retcode)
connected=1;
else{
connected=0;
increment_throw_count();
if(get_throw_count()>1)return;
if(otl_uncaught_exception()) return;
OTL_TMPL_EXCEPTION ex(connect_struct);
connect_struct.cleanup();
throw ex;
}
}


OTL_TMPL_EXCEPTION ex(connect_struct);本应调用otl_tmpl_exception的构造函数:

 otl_tmpl_exception(TConnectStruct& conn_struct, const char* sqlstm=0)
#if defined(__GNUC__) && (__GNUC__>=3)
throw()
#else
OTL_NO_THROW
#endif
{
stm_text[0]=0;
var_info[0]=0;
if(sqlstm){
OTL_STRNCPY_S(OTL_RCAST(char*,stm_text),
sizeof(stm_text),
sqlstm,
sizeof(stm_text)-1);
stm_text[sizeof(stm_text)-1]=0;
}
conn_struct.error(OTL_SCAST(TExceptionStruct&,*this));
OTL_TRACE_EXCEPTION(this->code,this->msg,this->stm_text,this->var_info)
}


但是下断点,甚至放了个assert(0);在里面,都发现根本没进这个函数(VC下调试是进了该函数的)

于是修改otl这个头文件,加了个 void Copy(TConnectStruct& conn_struct, const char* sqlstm=0)函数

在OTL_TMPL_EXCEPTION ex(connect_struct);之后添加ex.Copy(connect_struct),终于执行相应代码了

结果结果…… conn_struct.error(OTL_SCAST(TExceptionStruct&,*this));这一句又进不去了!

茫然啊,如果在数据库操作失败时无法获得实际的错误码和错误描述的话,但这个代码根本就没实用价值。

求帮忙。。。
...全文
210 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
基于滑模SMC-PID的二自由度机械臂轨迹跟踪控制仿真(Simulink仿真、Matlab代码)内容概要:本文详细介绍了基于滑模SMC-PID的二自由度机械臂轨迹跟踪控制仿真研究,结合Simulink仿真与Matlab代码实现,旨在复现相关期刊论文的核心内容。文中重点探讨了滑模控制(SMC)与PID控制相结合的复合控制策略在机械臂轨迹跟踪中的应用,通过设计合理的滑模面与控制律,提升系统对参数不确定性及外部干扰的鲁棒性,同时利用PID调节增强控制精度与动态响应性能。仿真模型构建完整,涵盖机械臂动力学建模、控制器设计、轨迹规划与跟踪效果可视化等环节,验证了所提控制方法的有效性与优越性。; 适合人群:具备自动控制理论基础、熟悉Matlab/Simulink环境,从事机器人控制、机电一体化或相关方向研究的研究生及科研人员。; 使用场景及目标:①学习并掌握滑模控制与PID融合的控制策略设计方法;②复现经典控制算法在机械臂轨迹跟踪中的仿真过程;③为科研项目或课程设计提供可参考的代码与实现框架; 阅读建议:建议读者结合文档目录顺序逐步学习,重点关注控制器设计原理与Simulink模块搭建细节,动手运行并调试配套代码,深入理解各参数对系统性能的影响,进而实现自主改进与优化。
内容概要:本文研究了一种在三维地形环境下基于Levy扰动粒子群优化(PSO)的无人机路径规划方法,旨在提升无人机在复杂地理环境中的自主导航能力与路径优化效率。通过引入Levy飞行机制对传统粒子群算法进行改进,增强了算法的全局搜索能力和跳出局部最优的能力,从而有效解决了无人机在三维空间中避障、能耗优化与路径最短化等多重约束下的路径规划难题。文中详细阐述了三维地形建模、适应度函数设计、Levy扰动策略融合及算法收敛性分析,并利用Matlab进行了仿真实验验证,结果表明该方法在路径平滑性、安全性与收敛速度方面均优于传统算法。; 适合人群:具备一定算法基础和Matlab编程能力,从事智能优化、无人机导航、路径规划等相关领域的科研人员及研究生。; 使用场景及目标:①应用于复杂地形下的无人机自主飞行任务,如灾害救援、地形勘测、军事侦察等;②为智能群体算法在高维空间优化问题中的改进与应用提供技术参考;③服务于高校与科研机构对智能优化算法的教学与实验仿真。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注Levy扰动机制与粒子群算法的融合方式,并可通过调整地形参数与约束条件进行二次实验,以掌握算法的适应性与优化潜力。

24,850

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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