- 论坛徽章:
- 0
|
程序如下:
- #include <stdio.h>;
- #include <string.h>;
- EXEC SQL INCLUDE SQLCA;
- EXEC SQL INCLUDE SQLDA;
- #define USERNAME "LUCKY"
- #define PASSWORD "sys"
- #define DB_NAME "DWP"
- #define DB_LINK "202.112.253.186"
- #define DB_TABLE "MMINFO1"
- EXEC SQL BEGIN DECLARE SECTION;
- VARCHAR username[20];
- VARCHAR password[20];
- VARCHAR db_name[20];
- VARCHAR db_link[20];
- char db_table[20];
- EXEC SQL END DECLARE SECTION;
- void sqlerror(char *msg)
- {
- printf("\n%s,%ld,%s\n",msg,sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
- EXEC SQL ROLLBACK WORK RELEASE;
- }
- void insert()
- {
- EXEC SQL BEGIN DECLARE SECTION;
- char id[100];
- char info[4000];
- char time[100];
- EXEC SQL END DECLARE SECTION;
-
- strcpy(id,"4012");
- strcpy(info,"This is a test");
- strcpy(time," 23-7月 -04");
-
-
- EXEC SQL WHENEVER SQLERROR DO sqlerror("ORACLE INSERT:");
-
- //插入相应纪录
- EXEC SQL INSERT INTO MMINFO1 VALUES(:id, :info, :time);
- EXEC SQL COMMIT;
- return;
- }
- int main(void)
- {
- strcpy(username.arr,USERNAME);
- username.len = strlen(username.arr);
- strcpy(password.arr,PASSWORD);
- password.len = strlen(password.arr);
-
- strcpy(db_name.arr,DB_NAME);
- db_name.len = strlen(db_name.arr);
- strcpy(db_link.arr,DB_LINK);
- db_link.len = strlen(db_link.arr);
-
- strcpy(db_table,DB_TABLE);
-
- EXEC SQL WHENEVER SQLERROR DO sqlerror("ORACLE ERROR:");
-
- EXEC SQL CONNECT :username IDENTIFIED BY :password USING :db_name;
-
- insert();
- printf("connected!!:)\n");
- EXEC SQL ROLLBACK WORK RELEASE;
- }
复制代码
有时对有时错:错误时,信息如下
ORACLE INSERT:,-1,ORA-00001: 违反唯一约束条件 (LUCKY.SYS_C003035)
ORACLE INSERT:,-1012,ORA-01012: 没有登录
ORACLE ERROR:,-1012,ORA-01012: 没有登录
谁知道为什么? |
|