PC源码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>#include <sqlca.h>void connect();
void array();
void sql_error();void main()
{EXEC SQL WHENEVER SQLERROR DO sql_error();connect();array();getchar();EXEC SQL COMMIT RELEASE;
}
void connect()
{
char username[10],password[10],server[10];
printf("inout uername:");
gets(username);
printf("inout password:");
gets(password);
printf("inout servername:");
gets(server);EXEC SQL CONNECT :username IDENTIFIED BY assword USING :server;
}void sql_error()
{
printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
}void array()
{
struct emp_struct {
int id;
float sal;
char addr[60];
} emp[20];int count;
int id;
char c;printf("inout id:");fputs("stdout: ", stdout);if (scanf("%d",&id)!=EOF) {while((c = getchar()) != '\n' && c != EOF)
;
}EXEC SQL select id,sal,addr into :emp from t_abc where id=:id;for (count=0;count<sqlca.sqlerrd[2];count++)
printf("id:%d,sal: %6.2f,addr:%s\n",emp[count].id,emp[count].sal,emp[count].addr);
}
然后预编译:
proc aa.pc 可以成功生成aa.c文件然后用gcc编译,则报找不到头文件错误
gcc aa.c -o aa
后台系统为red advansce server oracle10aa.c :148:19: sqlca.h: No such file or directory
aa.c : In function `main':
aa.c :177: error: `sqlca' undeclared (first use in this function)
aa.c :177: error: (Each undeclared identifier is reported only once
aa.c :177: error: for each function it appears in.)
aa.c :155: warning: return type of 'main' is not `int'
aa.c : In function `connect':
aa.c :209: error: `sqlca' undeclared (first use in this function)
aa.c : In function `sql_error':
aa.c :259: error: `sqlca' undeclared (first use in this function)
aa.c : In function `array':
aa.c :299: error: `sqlca' undeclared (first use in this function)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>#include <sqlca.h>void connect();
void array();
void sql_error();void main()
{EXEC SQL WHENEVER SQLERROR DO sql_error();connect();array();getchar();EXEC SQL COMMIT RELEASE;
}
void connect()
{
char username[10],password[10],server[10];
printf("inout uername:");
gets(username);
printf("inout password:");
gets(password);
printf("inout servername:");
gets(server);EXEC SQL CONNECT :username IDENTIFIED BY assword USING :server;
}void sql_error()
{
printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
}void array()
{
struct emp_struct {
int id;
float sal;
char addr[60];
} emp[20];int count;
int id;
char c;printf("inout id:");fputs("stdout: ", stdout);if (scanf("%d",&id)!=EOF) {while((c = getchar()) != '\n' && c != EOF)
;
}EXEC SQL select id,sal,addr into :emp from t_abc where id=:id;for (count=0;count<sqlca.sqlerrd[2];count++)
printf("id:%d,sal: %6.2f,addr:%s\n",emp[count].id,emp[count].sal,emp[count].addr);
}
然后预编译:
proc aa.pc 可以成功生成aa.c文件然后用gcc编译,则报找不到头文件错误
gcc aa.c -o aa
后台系统为red advansce server oracle10aa.c :148:19: sqlca.h: No such file or directory
aa.c : In function `main':
aa.c :177: error: `sqlca' undeclared (first use in this function)
aa.c :177: error: (Each undeclared identifier is reported only once
aa.c :177: error: for each function it appears in.)
aa.c :155: warning: return type of 'main' is not `int'
aa.c : In function `connect':
aa.c :209: error: `sqlca' undeclared (first use in this function)
aa.c : In function `sql_error':
aa.c :259: error: `sqlca' undeclared (first use in this function)
aa.c : In function `array':
aa.c :299: error: `sqlca' undeclared (first use in this function)
解决方案 »
- 关于数据库移植的问题
- 在Oracle中,如何将一张表中的long字段的数据插入到另一张表中的clob的字段中
- primary 与 unique 有什么分别呢?
- 关于不同用户之间访问视图问题(急,谢谢)
- 小弟我初学SQL,请教高手几个基础的概念问题……
- 这段MSSQL存储过程转换到ORACLE9I中如何改写,谢谢
- 请问在VB中如何编写SQL语句获得ORACLE数据库中某个表的表结构以及主键,外键的信息,谢谢!
- Oracle数据库 v$sqlarea , v$session , v$process 中分别可以保留多长时间的资料 ?
- ========= 如何改变oracle序列的值 ============
- 请问怎么把sequence作为参数传递给一个函数?
- 多用户存储BLOB字段的问题
- 我想问个BT问题,就是一个ORACLE用户只对应一台机器登陆!!
我pc源码上加了 EXEC SQL INCLUDE SQLCA,在main函数里,但还是报同样的错误。
void main()
{
EXEC SQL INCLUDE SQLCA; //增加的语句EXEC SQL WHENEVER SQLERROR DO sql_error();connect();array();getchar();EXEC SQL COMMIT RELEASE;
}
最终生成的时候没有说明库路径,头文件路径和需要链接的库
应该这样写的():
gcc -L$(ORACLE_HOME)/lib32 -I$(ORACLE_HOME)/precomp/public -lclntsh -oaa aa.c