C++程序读ORACLE表里的字符串怎么读?

来源:百度知道 编辑:UC知道 时间:2024/06/16 12:33:23
我的C++程序需要读数据库表里的数据,用来计算.写了点程序,读整型(getInt)和复点型(getFloat)都好用,但是读字符串编译能通过,运行就出错.
string cno;
int aa;
float bb;
cno = rset->getString(2);//正常应该读出来HAHA123456
bb =rset->getFloat(3); //正常情况下bb=3.2
aa =rset->getInt(4); //aa=2;
只要把cno=rset->getString(2);拿掉程序就能正常运行,读出来的数也对,我怀疑是我工程建的有问题,但也不知道差在哪,希望有高手指点,谢谢.

以前自己写的:
/* exam01.pc 开发Oracle接口程序举例 */
/* 说明:本程序介绍用PROC开发Oracle库接口的编程特点。通过向AUTHS
* 表输入作家代码,查询作家姓名及工资。运行前应建表、插入数据并提交。*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* 包含SQL通讯区,它用于处理错误。*/
#include <sqlca.h>
void connect(); /* 连接到Oracle Server */
void disconnect(); /* 断开到Oracle Server的连接 */
void sql_error(char *); /* 处理错误句柄 */
void select(); /* 查询子程序 */
extern sqlglm(char *,int *,int *);
/* 主程序 */
void main()
{
/* 安装错误处理句柄 */
EXEC SQL WHENEVER SQLERROR DO sql_error("Oracle错误--\n");
/* 连接到数据库 */
connect();
/* 执行查询 */
select();
/* 断开数据库连接 */
disconnect();
}
/* 子程序 */
/* 连接子程序 connect() */
void connect()
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[10], password[10], server[10];
EXEC SQL END DECLARE SECTION;
/* 输入用户名、口令以及服务器名 */
printf("\n输入用