/* 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[13];
};
static struct sqlcxp sqlfpn =
{
12,
"oracleopt.pc"
};
static unsigned long sqlctx = 315227;
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[10];
unsigned int sqhstl[10];
int sqhsts[10];
void *sqindv[10];
int sqinds[10];
unsigned int sqharm[10];
unsigned int *sqharc[10];
unsigned short sqadto[10];
unsigned short sqtdso[10];
} sqlstm = {10,10};
/* 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 *sq0019 =
"select * from PRODUCT order by count,bar_code asc ";
static char *sq0023 =
"select * from staff ";
static char *sq0025 =
"select sale_id ,staff_id ,trans_id ,to_char(sale_date,'yyyymmdd24miss') ,re\
al_sum ,sale_money ,change ,sale_state from SALE ";
static char *sq0027 =
"select * from sale_detail where sale_id=:b0 ";
static char *sq0030 =
"select sale_id ,staff_id ,trans_id ,to_char(sale_date,'yyyymmddhh24miss') ,\
real_sum ,sale_money ,change ,sale_state from SALE where staff_id=:b0 \
";
static char *sq0035 =
"select sale_id ,staff_id ,trans_id ,to_char(sale_date,'yyyymmddhh24miss') ,\
real_sum ,sale_money ,change ,sale_state from SALE where sale_date between t\
o_date(:b0,'YYYYMMDDHH24MISS') and to_date(:b1,'YYYYMMDDHH24MISS') ";
static char *sq0040 =
"select trans_id from SALE where sale_state=1 ";
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,19,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,0,0,32,23,0,0,0,0,0,1,0,
51,0,0,3,51,0,3,33,0,0,6,6,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,3,0,0,1,3,0,0,1,
97,0,0,
90,0,0,4,0,0,29,35,0,0,0,0,0,1,0,
105,0,0,5,86,0,3,45,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,
152,0,0,6,53,0,3,59,0,0,5,5,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,3,0,0,1,4,0,0,
187,0,0,7,50,0,4,72,0,0,1,0,0,1,0,2,3,0,0,
206,0,0,8,49,0,4,82,0,0,1,0,0,1,0,2,3,0,0,
225,0,0,9,45,0,4,92,0,0,1,0,0,1,0,2,3,0,0,
244,0,0,10,43,0,4,102,0,0,1,0,0,1,0,2,3,0,0,
263,0,0,11,56,0,5,115,0,0,2,2,0,1,0,1,3,0,0,1,97,0,0,
286,0,0,12,54,0,4,117,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,
309,0,0,13,50,0,5,120,0,0,1,1,0,1,0,1,97,0,0,
328,0,0,14,0,0,29,121,0,0,0,0,0,1,0,
343,0,0,15,72,0,5,147,0,0,3,3,0,1,0,1,3,0,0,1,3,0,0,1,97,0,0,
370,0,0,16,65,0,3,159,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,3,0,0,
421,0,0,17,0,0,29,162,0,0,0,0,0,1,0,
436,0,0,18,46,0,4,178,0,0,1,0,0,1,0,2,3,0,0,
455,0,0,19,64,0,9,180,0,0,0,0,0,1,0,
470,0,0,19,0,0,13,185,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,
521,0,0,19,0,0,15,194,0,0,0,0,0,1,0,
536,0,0,20,50,0,5,208,0,0,0,0,0,1,0,
551,0,0,21,0,0,29,209,0,0,0,0,0,1,0,
566,0,0,22,44,0,4,210,0,0,1,0,0,1,0,2,3,0,0,
585,0,0,23,32,0,9,213,0,0,0,0,0,1,0,
600,0,0,23,0,0,13,218,0,0,6,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,3,0,0,
2,97,0,0,
639,0,0,23,0,0,15,227,0,0,0,0,0,1,0,
654,0,0,24,42,0,4,243,0,0,1,0,0,1,0,2,3,0,0,
673,0,0,25,136,0,9,248,0,0,0,0,0,1,0,
688,0,0,25,0,0,13,253,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,4,0,0,2,3,0,0,
735,0,0,25,0,0,15,262,0,0,0,0,0,1,0,
750,0,0,26,53,0,4,281,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,
773,0,0,27,55,0,9,286,0,0,1,1,0,1,0,1,3,0,0,
792,0,0,27,0,0,13,293,0,0,5,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,4,0,0,
827,0,0,27,0,0,15,310,0,0,0,0,0,1,0,
842,0,0,28,53,0,4,330,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,
865,0,0,29,78,0,5,337,0,0,3,3,0,1,0,1,3,0,0,1,3,0,0,1,97,0,0,
892,0,0,31,61,0,4,359,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,
915,0,0,30,156,0,9,361,0,0,1,1,0,1,0,1,97,0,0,
934,0,0,30,0,0,13,366,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,4,0,0,2,3,0,0,
981,0,0,30,0,0,15,375,0,0,0,0,0,1,0,
996,0,0,32,69,0,5,387,0,0,1,1,0,1,0,1,97,0,0,
1015,0,0,33,0,0,29,389,0,0,0,0,0,1,0,
1030,0,0,34,74,0,4,390,0,0,7,1,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,2,3,0,
0,2,97,0,0,1,97,0,0,
1073,0,0,36,134,0,4,416,0,0,3,2,0,1,0,2,3,0,0,1,97,0,0,1,97,0,0,
1100,0,0,35,229,0,9,419,0,0,2,2,0,1,0,1,97,0,0,1,97,0,0,
1123,0,0,35,0,0,13,424,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,4,0,0,2,3,0,0,
1170,0,0,35,0,0,15,433,0,0,0,0,0,1,0,
1185,0,0,37,141,0,5,444,0,0,9,9,0,1,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,3,0,0,1,97,0,0,
1236,0,0,38,0,0,29,449,0,0,0,0,0,1,0,
1251,0,0,39,63,0,4,465,0,0,1,0,0,1,0,2,3,0,0,
1270,0,0,40,56,0,9,471,0,0,0,0,0,1,0,
1285,0,0,40,0,0,13,474,0,0,1,0,0,1,0,2,97,0,0,
1304,0,0,40,0,0,15,478,0,0,0,0,0,1,0,
1319,0,0,41,53,0,4,492,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,
1342,0,0,42,43,0,2,496,0,0,1,1,0,1,0,1,3,0,0,
1361,0,0,43,36,0,2,497,0,0,1,1,0,1,0,1,3,0,0,
1380,0,0,44,0,0,29,499,0,0,0,0,0,1,0,
1395,0,0,45,124,0,4,510,0,0,10,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,2,3,0,0,1,97,0,0,
1450,0,0,46,50,0,5,527,0,0,1,1,0,1,0,1,97,0,0,
1469,0,0,47,0,0,29,528,0,0,0,0,0,1,0,
1484,0,0,48,104,0,5,543,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,
1523,0,0,49,0,0,29,550,0,0,0,0,0,1,0,
1538,0,0,50,48,0,5,564,0,0,1,1,0,1,0,1,97,0,0,
1557,0,0,51,0,0,29,565,0,0,0,0,0,1,0,
1572,0,0,52,78,0,4,580,0,0,2,2,0,1,0,1,97,0,0,1,97,0,0,
};
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sqlca.h>
#include "oracleopt.h"
#include "type.h"
#include "linklist.h"
/*登陆数据库*/
int LoginDatabase(char *user_name,char *passwd)
{
/* EXEC SQL WHENEVER SQLERROR GOTO login_error; */
/* EXEC SQL CONNECT :user_name identified by :passwd; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (un