📄 db.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[6];};static struct sqlcxp sqlfpn ={ 5, "db.pc"};static unsigned long sqlctx = 2027;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 *sq0012 = "select bar_code ,amount from t_sales_detail where SALE_ID=:b0 "; static char *sq0039 = "select * from T_GOODS order by BAR_CODE "; static char *sq0041 = "select * from T_SALE where (CASHIER_ID=:b0 and SALE_STATE=1) "; static char *sq0043 = "select * from T_SALE where CASHIER_ID=:b0 "; static char *sq0045 = "select * from T_SALE where sale_date between TO_DATE(:b0,'YYYYMMDD') and T\O_DATE(:b1,'YYYYMMDD') "; static char *sq0047 = "select * from T_EMPLOYEE ";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,0,0,27,15,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,10,0,0,1,10,0,0,36,0,0,2,21,0,1,16,0,0,0,0,0,1,0,51,0,0,3,33,0,44,17,0,0,0,0,0,1,0,66,0,0,4,46,0,1,18,0,0,0,0,0,1,0,81,0,0,5,0,0,27,30,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,10,0,0,1,10,0,0,112,0,0,6,0,0,32,34,0,0,0,0,0,1,0,127,0,0,7,0,0,30,44,0,0,0,0,0,1,0,142,0,0,8,76,0,4,56,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,181,0,0,9,0,0,31,62,0,0,0,0,0,1,0,196,0,0,10,93,0,4,78,0,0,7,2,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,1,97,0,0,239,0,0,11,0,0,31,84,0,0,0,0,0,1,0,254,0,0,12,73,0,9,104,0,0,1,1,0,1,0,1,97,0,0,273,0,0,12,0,0,13,109,0,0,2,0,0,1,0,2,97,0,0,2,3,0,0,296,0,0,13,86,0,4,111,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,347,0,0,12,0,0,15,125,0,0,0,0,0,1,0,362,0,0,14,0,0,31,129,0,0,0,0,0,1,0,377,0,0,15,86,0,4,144,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,428,0,0,16,0,0,31,150,0,0,0,0,0,1,0,443,0,0,17,49,0,4,166,0,0,1,0,0,1,0,2,97,0,0,462,0,0,18,0,0,31,172,0,0,0,0,0,1,0,477,0,0,19,50,0,4,187,0,0,1,0,0,1,0,2,97,0,0,496,0,0,20,0,0,32,192,0,0,0,0,0,1,0,511,0,0,21,54,0,4,207,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,534,0,0,22,0,0,31,214,0,0,0,0,0,1,0,549,0,0,23,54,0,4,228,0,0,2,1,0,1,0,2,97,0,0,1,97,0,0,572,0,0,24,0,0,31,234,0,0,0,0,0,1,0,587,0,0,25,101,0,4,248,0,0,8,2,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,4,0,0,2,3,0,0,1,97,0,0,1,97,0,0,634,0,0,26,0,0,31,252,0,0,0,0,0,1,0,649,0,0,27,92,0,3,266,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,4,0,0,1,4,0,0,1,3,0,0,700,0,0,28,0,0,29,270,0,0,0,0,0,1,0,715,0,0,29,0,0,31,274,0,0,0,0,0,1,0,730,0,0,30,60,0,3,288,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,769,0,0,31,0,0,29,291,0,0,0,0,0,1,0,784,0,0,32,0,0,31,295,0,0,0,0,0,1,0,799,0,0,33,112,0,5,309,0,0,3,3,0,1,0,1,4,0,0,1,4,0,0,1,97,0,0,826,0,0,34,0,0,29,312,0,0,0,0,0,1,0,841,0,0,35,0,0,31,316,0,0,0,0,0,1,0,856,0,0,36,101,0,5,330,0,0,3,3,0,1,0,1,3,0,0,1,97,0,0,1,97,0,0,883,0,0,37,0,0,29,333,0,0,0,0,0,1,0,898,0,0,38,0,0,31,337,0,0,0,0,0,1,0,913,0,0,39,53,0,9,355,0,0,0,0,0,1,0,928,0,0,39,0,0,13,360,0,0,8,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,975,0,0,39,0,0,15,373,0,0,0,0,0,1,0,990,0,0,40,0,0,31,377,0,0,0,0,0,1,0,1005,0,0,41,72,0,9,393,0,0,1,1,0,1,0,1,97,0,0,1024,0,0,41,0,0,13,398,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,4,0,0,2,4,0,0,2,3,0,0,1075,0,0,41,0,0,15,411,0,0,0,0,0,1,0,1090,0,0,42,0,0,31,415,0,0,0,0,0,1,0,1105,0,0,43,53,0,9,427,0,0,1,1,0,1,0,1,97,0,0,1124,0,0,43,0,0,13,432,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,4,0,0,2,4,0,0,2,3,0,0,1175,0,0,43,0,0,15,445,0,0,0,0,0,1,0,1190,0,0,44,0,0,31,449,0,0,0,0,0,1,0,1205,0,0,45,108,0,9,466,0,0,2,2,0,1,0,1,97,0,0,1,97,0,0,1228,0,0,45,0,0,13,471,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,4,0,0,2,4,0,0,2,3,0,0,1279,0,0,45,0,0,15,484,0,0,0,0,0,1,0,1294,0,0,46,0,0,31,488,0,0,0,0,0,1,0,1309,0,0,47,37,0,9,500,0,0,0,0,0,1,0,1324,0,0,47,0,0,13,505,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,1359,0,0,47,0,0,15,518,0,0,0,0,0,1,0,1374,0,0,48,0,0,31,522,0,0,0,0,0,1,0,1389,0,0,49,52,0,3,532,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,1424,0,0,50,0,0,29,534,0,0,0,0,0,1,0,1439,0,0,51,0,0,31,538,0,0,0,0,0,1,0,1454,0,0,52,45,0,2,548,0,0,1,1,0,1,0,1,97,0,0,1473,0,0,53,0,0,29,550,0,0,0,0,0,1,0,1488,0,0,54,0,0,31,554,0,0,0,0,0,1,0,1503,0,0,55,61,0,3,565,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,1550,0,0,56,0,0,29,568,0,0,0,0,0,1,0,1565,0,0,57,0,0,31,572,0,0,0,0,0,1,0,1580,0,0,58,40,0,2,582,0,0,1,1,0,1,0,1,97,0,0,1599,0,0,59,0,0,29,584,0,0,0,0,0,1,0,1614,0,0,60,0,0,31,588,0,0,0,0,0,1,0,1629,0,0,61,76,0,5,598,0,0,2,2,0,1,0,1,3,0,0,1,97,0,0,1652,0,0,62,0,0,29,599,0,0,0,0,0,1,0,1667,0,0,63,0,0,31,603,0,0,0,0,0,1,0,1682,0,0,64,76,0,5,612,0,0,2,2,0,1,0,1,3,0,0,1,97,0,0,1705,0,0,65,0,0,29,613,0,0,0,0,0,1,0,1720,0,0,66,0,0,31,617,0,0,0,0,0,1,0,1735,0,0,67,38,0,2,627,0,0,1,1,0,1,0,1,97,0,0,1754,0,0,68,0,0,29,629,0,0,0,0,0,1,0,1769,0,0,69,0,0,31,633,0,0,0,0,0,1,0,1784,0,0,70,46,0,2,642,0,0,1,1,0,1,0,1,97,0,0,1803,0,0,71,0,0,29,644,0,0,0,0,0,1,0,1818,0,0,72,0,0,31,648,0,0,0,0,0,1,0,};#include"db.h"
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
/* EXEC SQL INCLUDE sqlca;
*/ /* * $Header: sqlca.h,v 1.3 1994/12/12 19:27:27 jbasu Exp $ sqlca.h *//* Copyright (c) 1985,1986, 1998 by Oracle Corporation. */ /*NAME SQLCA : SQL Communications Area.FUNCTION Contains no code. Oracle fills in the SQLCA with status info during the execution of a SQL stmt.NOTES ************************************************************** *** *** *** This file is SOSD. Porters must change the data types *** *** appropriately on their platform. See notes/pcport.doc *** *** for more information. *** *** *** ************************************************************** If the symbol SQLCA_STORAGE_CLASS is defined, then the SQLCA will be defined to have this storage class. For example: #define SQLCA_STORAGE_CLASS extern will define the SQLCA as an extern. If the symbol SQLCA_INIT is defined, then the SQLCA will be statically initialized. Although this is not necessary in order to use the SQLCA, it is a good pgming practice not to have unitialized variables. However, some C compilers/OS's don't allow automatic variables to be init'd in this manner. Therefore, if you are INCLUDE'ing the SQLCA in a place where it would be an automatic AND your C compiler/OS doesn't allow this style of initialization, then SQLCA_INIT should be left undefined -- all others can define SQLCA_INIT if they wish. If the symbol SQLCA_NONE is defined, then the SQLCA variable will not be defined at all. The symbol SQLCA_NONE should not be defined in source modules that have embedded SQL. However, source modules that have no embedded SQL, but need to manipulate a sqlca struct passed in as a parameter, can set the SQLCA_NONE symbol to avoid creation of an extraneous sqlca variable. MODIFIED lvbcheng 07/31/98 - long to int jbasu 12/12/94 - Bug 217878: note this is an SOSD file losborne 08/11/92 - No sqlca var if SQLCA_NONE macro set Clare 12/06/84 - Ch SQLCA to not be an extern. Clare 10/21/85 - Add initialization. Bradbury 01/05/86 - Only initialize when SQLCA_INIT set Clare 06/12/86 - Add SQLCA_STORAGE_CLASS option.*/ #ifndef SQLCA#define SQLCA 1 struct sqlca { /* ub1 */ char sqlcaid[8]; /* b4 */ int sqlabc; /* b4 */ int sqlcode; struct { /* ub2 */ unsigned short sqlerrml; /* ub1 */ char sqlerrmc[70]; } sqlerrm; /* ub1 */ char sqlerrp[8]; /* b4 */ int sqlerrd[6]; /* ub1 */ char sqlwarn[8]; /* ub1 */ char sqlext[8]; };#ifndef SQLCA_NONE #ifdef SQLCA_STORAGE_CLASSSQLCA_STORAGE_CLASS struct sqlca sqlca#else struct sqlca sqlca#endif #ifdef SQLCA_INIT = { {'S', 'Q', 'L', 'C', 'A', ' ', ' ', ' '}, sizeof(struct sqlca), 0, { 0, {0}}, {'N', 'O', 'T', ' ', 'S', 'E', 'T', ' '}, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0} }#endif ;#endif #endif /* end SQLCA */
/*******************************************************************
功能:创建用户
参数:无
返回值:无
*******************************************************************/
void Creat_User()
{
/* EXEC SQL CONNECT :"system" IDENTIFIED BY :"manager"; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 4; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int )10; 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 *)"system"; 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 *)"manager"; 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.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);}
/* EXEC SQL drop user pos cascade; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -