#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sqlda.h>
#include<sqlcpr.h>
#include<sqlca.h>EXEC SQL BEGIN DECLARE SECTION;
varchar usr[20];
varchar pass[20];
varchar serv[20];
EXEC SQL END DECLARE SECTION;int connect() {
EXEC SQL WHENEVER SQLERROR GOTO error_msg; EXEC SQL CONNECT :username IDENTIFIED BY :password USING :serv;
printf("Connect successed!\n");
return 0;
error_msg:
printf("Connect failed\n");
return -1;
}void sql_error(char *msg)
{
char err_msg[128];
size_t buf_len, msg_len;
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\n%s\n", msg);
buf_len = sizeof (err_msg);
sqlglm(err_msg, &buf_len, &msg_len);
printf("%.*s\n", msg_len, err_msg);
EXEC SQL ROLLBACK RELEASE;
exit(-1);
}int main (){
EXEC SQL BEGIN DECLARE SECTION;
char name[50];
int id,score;
EXEC SQL END DECLARE SECTION; strcpy(usr.arr,"qgtg");
usr.len=(unsigned short)strlen((char *)usr.arr); strcpy(pass.arr,"qgtg");
pass.len=(unsigned short)strlen((char *)pass.arr); strcpy(serv.arr,"6.0.55.10");
serv.len=(unsigned short)strlen((char *)serv.arr);
if (connect()!=0)
exit(-1);
EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--\n"); printf("\n/*-------------------SELECT--------------------*/\n");
printf("please input studentid:");
scanf("%d",&id);
EXEC SQL SELECT id,name,score INTO :id,:name,:score FROM student WHERE id=:id;
printf("id=%d name=%s score=%d\n",id,name,score);
EXEC SQL COMMIT WORK RELEASE;
exit(0);
}Oracle
#include<stdlib.h>
#include<string.h>
#include<sqlda.h>
#include<sqlcpr.h>
#include<sqlca.h>EXEC SQL BEGIN DECLARE SECTION;
varchar usr[20];
varchar pass[20];
varchar serv[20];
EXEC SQL END DECLARE SECTION;int connect() {
EXEC SQL WHENEVER SQLERROR GOTO error_msg; EXEC SQL CONNECT :username IDENTIFIED BY :password USING :serv;
printf("Connect successed!\n");
return 0;
error_msg:
printf("Connect failed\n");
return -1;
}void sql_error(char *msg)
{
char err_msg[128];
size_t buf_len, msg_len;
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\n%s\n", msg);
buf_len = sizeof (err_msg);
sqlglm(err_msg, &buf_len, &msg_len);
printf("%.*s\n", msg_len, err_msg);
EXEC SQL ROLLBACK RELEASE;
exit(-1);
}int main (){
EXEC SQL BEGIN DECLARE SECTION;
char name[50];
int id,score;
EXEC SQL END DECLARE SECTION; strcpy(usr.arr,"qgtg");
usr.len=(unsigned short)strlen((char *)usr.arr); strcpy(pass.arr,"qgtg");
pass.len=(unsigned short)strlen((char *)pass.arr); strcpy(serv.arr,"6.0.55.10");
serv.len=(unsigned short)strlen((char *)serv.arr);
if (connect()!=0)
exit(-1);
EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--\n"); printf("\n/*-------------------SELECT--------------------*/\n");
printf("please input studentid:");
scanf("%d",&id);
EXEC SQL SELECT id,name,score INTO :id,:name,:score FROM student WHERE id=:id;
printf("id=%d name=%s score=%d\n",id,name,score);
EXEC SQL COMMIT WORK RELEASE;
exit(0);
}Oracle
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货