|
|
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define USERNAME "dbaccopr"
#define PASSWORD "dbaccopr200606"
/*通讯区说明*/
EXEC SQL INCLUDE sqlca;
/* 说明段 */
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
EXEC SQL END DECLARE SECTION;
void sqlerror();
int main()
{
/*内部说明段*/
EXEC SQL BEGIN DECLARE SECTION;
char stu_no[9];
char stu_name[20];
int stu_age;
char stu_dept[20];
EXEC SQL END DECLARE SECTION;
/*VARCHAR stu_no[9];*/
/*VARCHAR stu_name[20];*/
/*VARCHAR stu_dept[20];*/
char* db_link_name = "LINK_CRMA_ACCOPR";
int total = 0;
char* db_name = "CENDEV";
/*登录到数据库*/
strcpy(username.arr, USERNAME);
username.len = strlen(username.arr);
strcpy(password.arr, PASSWORD);
password.len = strlen(password.arr);
EXEC SQL WHENEVER SQLERROR do sqlerror();
EXEC SQL CONNECT :username IDENTIFIED BY :password AT: db_link_name USING: db_name;
printf("\nConnected to ORACLE as user: %s\n", username.arr);
while(1)
{
printf("\nEnter your student number NULL is quit)");
/*scanf("%s", stu_no.arr);
stu_no.len = strlen(stu_no.arr);*/
scanf("%s", stu_no);
if(strlen(stu_no) == 0)
break;
printf("Enter your name:");
/*scanf ("%s",stu_name.arr);
stu_name.len = strlen(stu_name.arr);*/
scanf ("%s",stu_name);
printf("Enter your age:");
scanf ("%d",stu_age);
/*stu_age.len = strlen(stu_age.arr);*/
printf("Enter your dept:");
/*scanf ("%s",stu_dept.arr);
stu_dept.len = strlen(stu_dept.arr);*/
scanf ("%s",stu_dept);
/*插入一行*/
EXEC SQL INSERT INTO student
(sno,sname,sage,sdept)
VALUES (:stu_no, :stu_name, :stu_age, :stu_dept);
EXEC SQL COMMIT WORK;
/*printf("Student %s is add.\n",stu_name.arr);*/
printf("Student %s is add.\n",stu_name);
total++;
}
printf("Insert the %d student\n", total);
/*退出数据库*/
EXEC SQL COMMIT WORK RELEASE;
/*exit();*/
return 0;
}
void sqlerror()
{
EXEC SQL WHENEVER SQLERROR continue;
printf("\nORACLE error detected:\n");
/*打印错误文本*/
printf("\n%.70s\n", sqlca.sqlerrm.sqlerrmc);
/*回滚事务*/
EXEC SQL ROLLBACK RELEASE;
/*exit(1);*/
return ;
}
|
|