关于OTL编译通过,运行报错的问题

mylusing 2011-01-11 04:38:24
关于OTL编译通过,运行报错的问题:
代码如下:
#include <stdio.h>
#include <string.h>
#include <iostream>
#define OTL_ORA9I
#include "otlv4.h"
using namespace std;
otl_connect db;
#define CONNECTSTRING "tbas/tydic@ora9i"
char char_code[10]={"0000"};
int main()
{
otl_connect::otl_initialize();
db.rlogon(CONNECTSTRING);
otl_stream select(10,"SELECT latn_name FROM latn where area_code=:char_code<11>",db);
select<<char_code;
char c_name[10];
while(!select.eof())
{
select>>c_name;
cout<<"latn_name="<<c_name<<endl;
}
select.set_flush(false);
select.set_commit(0);
db.logoff();
}



//编译通过,但是运行报了一个这样的错,IOT/Abort trap(coredump)。应当是内存上面的问题,但是我就不知道什么原因,还望高手指导一下,我刚接触OTL这个东东!
...全文
133 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero_ 2011-01-12
  • 打赏
  • 举报
回复
select>>char_code;
这个方向也反了,是输入变量,你为何弄成输出呢?
mylusing 2011-01-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 mylusing 的回复:]
关于OTL编译通过,运行报错的问题:
代码如下:
#include <stdio.h>
#include <string.h>
#include <iostream>
#define OTL_ORA9I
#include "otlv4.h"
using namespace std;
otl_connect db;
#define CONNECTSTRING "tbas/tydic……
[/Quote]


如你所说,我看了一下的确是弄反了,但是仍然报IOT/Abort trap(coredump)内存上面的东东,改了之后的代码是这样的
otl_connect::otl_initialize();
db.rlogon(CONNECTSTRING);
otl_stream select(10,"SELECT latn_name FROM latn where area_code=:char_code<11>",db);
char c_name[20];
select>>char_code;
while(!select.eof())
{
select>>c_name;
cout<<"latn_name="<<c_name<<endl;
}
db.logoff();
iihero_ 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 mylusing 的回复:]
otl_stream select(10,"SELECT latn_name FROM latn where area_code=:char_code<11>",db);
select<<char_code;
char c_name[10];
while(!select.eof())
{
select>>c_name;
cout<<"latn_name="<<c_name<<endl;
}
[/Quote]
流的输入输出方向弄反了
应该是select>>char_code, 先输入
然后while 之后,输出c_name
select<<c_name;


17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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