日期:2014-05-17  浏览次数:20649 次

请问PROC读取数据怎么是乱码?
我建了一个表,2个字段,NAME和NO,只有一条记录'zhangsan',1
然后用以下程序做测试,结果输出的是乱码
C/C++ code
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*包含sqlca头文件*/
#include <sqlca.h>
#include <STDIO.H>
void connect();
void query();
void main()
{
    connect();
    query();
    getch();
}
void connect()
{
char username[10],password[10],server[10];
printf("输入用户名:");
gets(username);
printf("输入口令:");
gets(password);
printf("输入网络服务名:");
gets(server);
/*内嵌连接语句*/
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :server;
}

void query()
{
int id;
char name[10];
printf("请输入编号:");
scanf("%d",&id);
fflush(stdin);
/*使用charz选项值显示字符数据*/
EXEC ORACLE OPTION (CHAR_MAP=CHARZ);
EXEC SQL SELECT NAME INTO :name FROM ID WHERE NO=:id;
printf("%s\n",name);
}


------解决方案--------------------
首先,我表示找不到STDIO.H
其次,或许EXEC ORACLE OPTION (CHAR_MAP=CHARZ);属于oraca.h中的通信区
最后,建议对char name[10];使用memcpy函数设置为全“零”,即/0