我建了一个表,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