📄 oracledb.c
字号:
/* Result Sets Interface */#ifndef SQL_CRSR# define SQL_CRSR struct sql_cursor { unsigned int curocn; void *ptr1; void *ptr2; unsigned long magic; }; typedef struct sql_cursor sql_cursor; typedef struct sql_cursor SQL_CURSOR;#endif /* SQL_CRSR *//* Thread Safety */typedef void * sql_context;typedef void * SQL_CONTEXT;/* Object support */struct sqltvn{ unsigned char *tvnvsn; unsigned short tvnvsnl; unsigned char *tvnnm; unsigned short tvnnml; unsigned char *tvnsnm; unsigned short tvnsnml;};typedef struct sqltvn sqltvn;struct sqladts{ unsigned int adtvsn; unsigned short adtmode; unsigned short adtnum; sqltvn adttvn[1]; };typedef struct sqladts sqladts;static struct sqladts sqladt = { 1,1,0,};/* Binding to PL/SQL Records */struct sqltdss{ unsigned int tdsvsn; unsigned short tdsnum; unsigned char *tdsval[1]; };typedef struct sqltdss sqltdss;static struct sqltdss sqltds ={ 1, 0,};/* File name & Package Name */struct sqlcxp{ unsigned short fillen; char filnam[12];};static struct sqlcxp sqlfpn ={ 11, "OracleDB.pc"};static unsigned long sqlctx = 157195;static struct sqlexd { unsigned int sqlvsn; unsigned int arrsiz; unsigned int iters; unsigned int offset; unsigned short selerr; unsigned short sqlety; unsigned int occurs; short *cud; unsigned char *sqlest; char *stmt; sqladts *sqladtp; sqltdss *sqltdsp; void **sqphsv; unsigned int *sqphsl; int *sqphss; void **sqpind; int *sqpins; unsigned int *sqparm; unsigned int **sqparc; unsigned short *sqpadto; unsigned short *sqptdso; void *sqhstv[9]; unsigned int sqhstl[9]; int sqhsts[9]; void *sqindv[9]; int sqinds[9]; unsigned int sqharm[9]; unsigned int *sqharc[9]; unsigned short sqadto[9]; unsigned short sqtdso[9];} sqlstm = {10,9};/* SQLLIB Prototypes */extern sqlcxt (/*_ void **, unsigned long *, struct sqlexd *, struct sqlcxp * _*/);extern sqlcx2t(/*_ void **, unsigned long *, struct sqlexd *, struct sqlcxp * _*/);extern sqlbuft(/*_ void **, char * _*/);extern sqlgs2t(/*_ void **, char * _*/);extern sqlorat(/*_ void **, unsigned long *, void * _*/);/* Forms Interface */static int IAPSUCC = 0;static int IAPFAIL = 1403;static int IAPFTL = 535;extern void sqliem(/*_ char *, int * _*/); static char *sq0027 = "select * from staff "; static char *sq0036 = "select sale_id from sale where (sale_state=:b0 and staff_id=:b1) \ "; static char *sq0037 = "select a.bar_code ,a.product_name ,a.unit ,a.spec ,a.sale_price ,b.count f\rom product a ,sale_detail b where (a.bar_code=b.bar_code and b.sale_id=:b0) \ "; static char *sq0041 = "select B.bar_code ,B.product_name ,B.unit ,B.spec ,B.sale_price ,B.purchase\_price ,B.count ,B.discount ,B.RN from (select A.* ,rownum RN from product \A where rownum<=:b0) B where B.RN>=:b1 "; static char *sq0043 = "select B.staff_id ,B.staff_name ,B.staff_pwd ,B.staff_type ,nvl(B.remark,' \') ,B.RN from (select A.* ,rownum RN from staff A where rownum<=:b0) B wher\e B.RN>=:b1 "; static char *sq0044 = "select sale_id ,trans_id ,staff_id ,sale_date ,sale_money from sale where \(sale_date between to_date(:b0,'yyyymmddhh24miss') and to_date(:b1,'yyyymmddh\h24miss') and sale_state=:b2) "; static char *sq0045 = "select sale_id ,trans_id ,staff_id ,sale_date ,sale_money from sale where \(staff_id=:b0 and sale_state=:b1) ";typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;typedef struct { unsigned short len; unsigned char arr[1]; } varchar;/* CUD (Compilation Unit Data) Array */static short sqlcud0[] ={10,4130,0,0,0,5,0,0,1,61,0,3,14,0,0,8,8,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,1,4,0,0,1,4,0,0,1,3,0,0,1,4,0,0,52,0,0,2,0,0,29,15,0,0,0,0,0,1,0,67,0,0,3,47,0,3,28,0,0,5,5,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,3,0,0,1,97,0,0,102,0,0,4,0,0,29,29,0,0,0,0,0,1,0,117,0,0,5,58,0,4,44,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,140,0,0,6,56,0,4,65,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,163,0,0,7,73,0,5,86,0,0,2,2,0,1,0,1,97,0,0,1,97,0,0,186,0,0,8,0,0,29,87,0,0,0,0,0,1,0,201,0,0,9,143,0,5,99,0,0,9,9,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,1,4,0,0,1,4,0,0,1,3,0,0,1,4,0,0,1,97,0,0,252,0,0,10,0,0,29,100,0,0,0,0,0,1,0,267,0,0,11,104,0,5,122,0,0,6,6,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,3,0,0,1,97,0,0,1,97,0,0,306,0,0,12,0,0,29,123,0,0,0,0,0,1,0,321,0,0,13,40,0,2,136,0,0,1,1,0,1,0,1,97,0,0,340,0,0,14,0,0,29,137,0,0,0,0,0,1,0,355,0,0,15,38,0,2,149,0,0,1,1,0,1,0,1,97,0,0,374,0,0,16,0,0,29,150,0,0,0,0,0,1,0,389,0,0,17,57,0,4,164,0,0,2,1,0,1,0,2,97,0,0,1,97,0,0,412,0,0,18,164,0,3,189,0,0,8,8,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,1,4,0,0,1,4,0,0,1,4,0,0,1,3,0,0,459,0,0,19,0,0,29,190,0,0,0,0,0,1,0,474,0,0,20,112,0,5,203,0,0,4,4,0,1,0,1,4,0,0,1,4,0,0,1,4,0,0,1,97,0,0,505,0,0,21,0,0,29,204,0,0,0,0,0,1,0,520,0,0,22,56,0,5,224,0,0,2,2,0,1,0,1,3,0,0,1,97,0,0,543,0,0,23,0,0,29,225,0,0,0,0,0,1,0,558,0,0,24,87,0,4,279,0,0,6,1,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,97,0,0,1,97,0,0,597,0,0,25,36,0,2,306,0,0,1,1,0,1,0,1,97,0,0,616,0,0,26,0,0,29,307,0,0,0,0,0,1,0,631,0,0,27,32,0,9,321,0,0,0,0,0,1,0,646,0,0,27,0,0,13,324,0,0,5,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,97,0,0,681,0,0,27,0,0,15,338,0,0,0,0,0,1,0,696,0,0,28,50,0,4,351,0,0,1,0,0,1,0,2,3,0,0,715,0,0,29,49,0,4,364,0,0,1,0,0,1,0,2,3,0,0,734,0,0,30,57,0,3,375,0,0,6,6,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,3,0,0,1,4,0,0,1,3,0,0,773,0,0,31,0,0,29,376,0,0,0,0,0,1,0,788,0,0,32,69,0,4,406,0,0,6,1,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,97,0,0,1,97,0,0,827,0,0,33,86,0,4,430,0,0,9,1,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,0,2,4,0,0,2,4,0,0,2,3,0,0,2,4,0,0,1,97,0,0,878,0,0,34,77,0,4,448,0,0,3,2,0,1,0,2,3,0,0,1,97,0,0,1,97,0,0,905,0,0,35,139,0,4,480,0,0,4,2,0,1,0,2,3,0,0,2,4,0,0,1,97,0,0,1,97,0,0,936,0,0,36,76,0,9,503,0,0,2,2,0,1,0,1,3,0,0,1,97,0,0,959,0,0,36,0,0,13,508,0,0,1,0,0,1,0,2,97,0,0,978,0,0,36,0,0,15,521,0,0,0,0,0,1,0,993,0,0,37,162,0,9,554,0,0,1,1,0,1,0,1,97,0,0,1012,0,0,37,0,0,13,557,0,0,6,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,0,2,4,0,0,2,3,0,0,1051,0,0,37,0,0,15,572,0,0,0,0,0,1,0,1066,0,0,38,40,0,4,586,0,0,1,0,0,1,0,2,3,0,0,1085,0,0,39,38,0,4,602,0,0,1,0,0,1,0,2,3,0,0,1104,0,0,40,40,0,4,629,0,0,1,0,0,1,0,2,3,0,0,1123,0,0,41,201,0,9,642,0,0,2,2,0,1,0,1,3,0,0,1,3,0,0,1146,0,0,41,0,0,13,645,0,0,9,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,0,2,4,0,0,2,4,0,0,2,3,0,0,2,4,0,0,2,3,0,0,1197,0,0,41,0,0,15,708,0,0,0,0,0,1,0,1212,0,0,42,38,0,4,749,0,0,1,0,0,1,0,2,3,0,0,1231,0,0,43,174,0,9,764,0,0,2,2,0,1,0,1,3,0,0,1,3,0,0,1254,0,0,43,0,0,13,767,0,0,6,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,97,0,0,2,3,0,0,1293,0,0,43,0,0,15,784,0,0,0,0,0,1,0,1308,0,0,44,192,0,9,838,0,0,3,3,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,1335,0,0,44,0,0,13,841,0,0,5,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,0,2,4,0,0,1370,0,0,44,0,0,15,860,0,0,0,0,0,1,0,1385,0,0,45,119,0,9,892,0,0,2,2,0,1,0,1,97,0,0,1,3,0,0,1408,0,0,45,0,0,13,895,0,0,5,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,0,2,4,0,0,1443,0,0,45,0,0,15,914,0,0,0,0,0,1,0,1458,0,0,46,0,0,27,932,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,10,0,0,1,10,0,0,1489,0,0,47,0,0,32,935,0,0,0,0,0,1,0,};#include <stdio.h>
#include <sqlcpr.h>
#include <sqlca.h>
#include <sqlda.h>
#include <string.h>
#include "OracleDB.h"
/*插入到product*/
int Insert_Into_Product(char * bar_code,char * product_name,char *unit,char *spec,float sale_price,float purchase_price,int count,float discount)
{
/* EXEC SQL WHENEVER SQLERROR GOTO INSERT_ERR; */
/* EXEC SQL INSERT INTO product VALUES (:bar_code,:product_name,:unit,:spec,:sale_price,:purchase_price,:count,:discount); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 8; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into product values (:b0,:b1,:b2,:b3,:b4,:b5,:b6,:b\7)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )5; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int )0; sqlstm.sqhstv[0] = ( void *)bar_code; sqlstm.sqhstl[0] = (unsigned int )0; sqlstm.sqhsts[0] = ( int )0; sqlstm.sqindv[0] = ( void *)0; sqlstm.sqinds[0] = ( int )0; sqlstm.sqharm[0] = (unsigned int )0; sqlstm.sqadto[0] = (unsigned short )0; sqlstm.sqtdso[0] = (unsigned short )0; sqlstm.sqhstv[1] = ( void *)product_name; sqlstm.sqhstl[1] = (unsigned int )0; sqlstm.sqhsts[1] = ( int )0; sqlstm.sqindv[1] = ( void *)0; sqlstm.sqinds[1] = ( int )0; sqlstm.sqharm[1] = (unsigned int )0; sqlstm.sqadto[1] = (unsigned short )0; sqlstm.sqtdso[1] = (unsigned short )0; sqlstm.sqhstv[2] = ( void *)unit; sqlstm.sqhstl[2] = (unsigned int )0; sqlstm.sqhsts[2] = ( int )0; sqlstm.sqindv[2] = ( void *)0; sqlstm.sqinds[2] = ( int )0; sqlstm.sqharm[2] = (unsigned int )0; sqlstm.sqadto[2] = (unsigned short )0; sqlstm.sqtdso[2] = (unsigned short )0; sqlstm.sqhstv[3] = ( void *)spec; sqlstm.sqhstl[3] = (unsigned int )0; sqlstm.sqhsts[3] = ( int )0; sqlstm.sqindv[3] = ( void *)0; sqlstm.sqinds[3] = ( int )0; sqlstm.sqharm[3] = (unsigned int )0; sqlstm.sqadto[3] = (unsigned short )0; sqlstm.sqtdso[3] = (unsigned short )0; sqlstm.sqhstv[4] = ( void *)&sale_price; sqlstm.sqhstl[4] = (unsigned int )sizeof(float); sqlstm.sqhsts[4] = ( int )0; sqlstm.sqindv[4] = ( void *)0; sqlstm.sqinds[4] = ( int )0; sqlstm.sqharm[4] = (unsigned int )0; sqlstm.sqadto[4] = (unsigned short )0; sqlstm.sqtdso[4] = (unsigned short )0; sqlstm.sqhstv[5] = ( void *)&purchase_price; sqlstm.sqhstl[5] = (unsigned int )sizeof(float); sqlstm.sqhsts[5] = ( int )0; sqlstm.sqindv[5] = ( void *)0; sqlstm.sqinds[5] = ( int )0; sqlstm.sqharm[5] = (unsigned int )0; sqlstm.sqadto[5] = (unsigned short )0; sqlstm.sqtdso[5] = (unsigned short )0; sqlstm.sqhstv[6] = ( void *)&count; sqlstm.sqhstl[6] = (unsigned int )sizeof(int); sqlstm.sqhsts[6] = ( int )0; sqlstm.sqindv[6] = ( void *)0; sqlstm.sqinds[6] = ( int )0; sqlstm.sqharm[6] = (unsigned int )0; sqlstm.sqadto[6] = (unsigned short )0; sqlstm.sqtdso[6] = (unsigned short )0; sqlstm.sqhstv[7] = ( void *)&discount; sqlstm.sqhstl[7] = (unsigned int )sizeof(float); sqlstm.sqhsts[7] = ( int )0; sqlstm.sqindv[7] = ( void *)0; sqlstm.sqinds[7] = ( int )0; sqlstm.sqharm[7] = (unsigned int )0; sqlstm.sqadto[7] = (unsigned short )0; sqlstm.sqtdso[7] = (unsigned short )0; sqlstm.sqphsv = sqlstm.sqhstv; sqlstm.sqphsl = sqlstm.sqhstl; sqlstm.sqphss = sqlstm.sqhsts; sqlstm.sqpind = sqlstm.sqindv; sqlstm.sqpins = sqlstm.sqinds; sqlstm.sqparm = sqlstm.sqharm; sqlstm.sqparc = sqlstm.sqharc; sqlstm.sqpadto = sqlstm.sqadto; sqlstm.sqptdso = sqlstm.sqtdso; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); if (sqlca.sqlcode < 0) goto INSERT_ERR;}
/* EXEC SQL COMMIT; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 8; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )52; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int )0; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); if (sqlca.sqlcode < 0) goto INSERT_ERR;} /*当插入或删除的时候要提交事务*/
return 1;/*正常插入*/
INSERT_ERR:
/* EXEC SQL WHENEVER SQLERROR CONTINUE; */
return 0;/*出错*/
}
/*添加员工到staff表中*/
int Insert_Into_Staff(char * staff_id,char * staff_name,char * staff_pwd,int staff_type, char * remark)
{
/* EXEC SQL WHENEVER SQLERROR GOTO INSERT_ERR; */
/* EXEC SQL INSERT INTO staff VALUES (:staff_id,:staff_name,:staff_pwd,:staff_type,:remark); */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 8; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "insert into staff values (:b0,:b1,:b2,:b3,:b4)"; sqlstm.iters = (unsigned int )1; sqlstm.offset = (unsigned int )67; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int )0; sqlstm.sqhstv[0] = ( void *)staff_id; sqlstm.sqhstl[0] = (unsigned int )0; sqlstm.sqhsts[0] = ( int )0; sqlstm.sqindv[0] = ( void *)0; sqlstm.sqinds[0] = ( int )0; sqlstm.sqharm[0] = (unsigned int )0; sqlstm.sqadto[0] = (unsigned short )0; sqlstm.sqtdso[0] = (unsigned short )0; sqlstm.sqhstv[1] = ( void *)staff_name; sqlstm.sqhstl[1] = (unsigned int )0; sqlstm.sqhsts[1] = ( int )0; sqlstm.sqindv[1] = ( void *)0; sqlstm.sqinds[1] = ( int )0; sqlstm.sqharm[1] = (unsigned int )0; sqlstm.sqadto[1] = (unsigned short )0; sqlstm.sqtdso[1] = (unsigned short )0; sqlstm.sqhstv[2] = ( void *)staff_pwd; sqlstm.sqhstl[2] = (unsigned int )0; sqlstm.sqhsts[2] = ( int )0; sqlstm.sqindv[2] = ( void *)0; sqlstm.sqinds[2] = ( int )0; sqlstm.sqharm[2] = (unsigned int )0; sqlstm.sqadto[2] = (unsigned short )0; sqlstm.sqtdso[2] = (unsigned short )0; sqlstm.sqhstv[3] = ( void *)&staff_type; sqlstm.sqhstl[3] = (unsigned int )sizeof(int);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -