⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 posoracle.c

📁 一个不错的POS系统
💻 C
📖 第 1 页 / 共 5 页
字号:
/* 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,    "posOracle.pc"};static unsigned long sqlctx = 326435;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 *sq0019 = "select sale_id  from sale_tmp            "; static char *sq0020 = "select bar_code ,num ,sale_price ,sale_state  from sale_detail where sale_i\d=:b0           ";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,12,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,30,26,0,0,0,0,0,1,0,51,0,0,3,68,0,4,41,0,0,4,1,0,1,0,2,9,0,0,2,3,0,0,2,3,0,0,1,3,0,0,82,0,0,4,111,0,4,67,0,0,5,1,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,3,0,0,1,97,0,0,117,0,0,5,49,0,4,106,0,0,1,0,0,1,0,2,3,0,0,136,0,0,6,50,0,4,121,0,0,1,0,0,1,0,2,3,0,0,155,0,0,7,105,0,4,146,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,206,0,0,8,63,0,4,169,0,0,1,0,0,1,0,2,97,0,0,225,0,0,9,211,0,3,216,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,276,0,0,10,120,0,3,230,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,315,0,0,11,52,0,5,249,0,0,2,2,0,1,0,1,3,0,0,1,97,0,0,338,0,0,12,0,0,29,253,0,0,0,0,0,1,0,353,0,0,13,0,0,31,259,0,0,0,0,0,1,0,368,0,0,14,0,0,31,265,0,0,0,0,0,1,0,383,0,0,15,56,0,3,286,0,0,2,2,0,1,0,1,97,0,0,1,97,0,0,406,0,0,16,0,0,29,292,0,0,0,0,0,1,0,421,0,0,17,0,0,31,299,0,0,0,0,0,1,0,436,0,0,18,0,0,31,303,0,0,0,0,0,1,0,451,0,0,19,41,0,9,317,0,0,0,0,0,1,0,466,0,0,19,0,0,13,323,0,0,1,0,0,1,0,2,97,0,0,485,0,0,19,0,0,15,329,0,0,0,0,0,1,0,500,0,0,19,0,0,15,335,0,0,0,0,0,1,0,515,0,0,21,110,0,4,377,0,0,4,1,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,1,97,0,0,546,0,0,20,91,0,9,385,0,0,1,1,0,1,0,1,97,0,0,565,0,0,20,0,0,13,391,0,0,4,0,0,1,0,2,97,0,0,2,3,0,0,2,4,0,0,2,3,0,0,596,0,0,22,52,0,5,394,0,0,2,2,0,1,0,1,3,0,0,1,97,0,0,619,0,0,23,111,0,4,396,0,0,6,1,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,4,0,0,2,4,0,0,1,97,0,0,658,0,0,20,0,0,15,422,0,0,0,0,0,1,0,673,0,0,24,0,0,29,423,0,0,0,0,0,1,0,688,0,0,20,0,0,15,431,0,0,0,0,0,1,0,703,0,0,25,40,0,2,435,0,0,1,1,0,1,0,1,97,0,0,722,0,0,26,43,0,2,437,0,0,1,1,0,1,0,1,97,0,0,741,0,0,27,36,0,2,438,0,0,1,1,0,1,0,1,97,0,0,760,0,0,28,0,0,29,439,0,0,0,0,0,1,0,775,0,0,29,0,0,31,448,0,0,0,0,0,1,0,790,0,0,30,90,0,4,469,0,0,4,2,0,1,0,2,3,0,0,2,4,0,0,1,97,0,0,1,97,0,0,821,0,0,31,73,0,4,475,0,0,3,1,0,1,0,2,4,0,0,2,4,0,0,1,97,0,0,848,0,0,32,88,0,3,485,0,0,7,7,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,891,0,0,33,94,0,5,489,0,0,3,3,0,1,0,1,4,0,0,1,4,0,0,1,4,0,0,918,0,0,34,55,0,3,494,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,953,0,0,35,52,0,5,496,0,0,2,2,0,1,0,1,3,0,0,1,97,0,0,976,0,0,36,0,0,29,499,0,0,0,0,0,1,0,991,0,0,37,0,0,31,506,0,0,0,0,0,1,0,1006,0,0,38,0,0,31,511,0,0,0,0,0,1,0,1021,0,0,39,37,0,4,519,0,0,1,1,0,1,0,1,97,0,0,1040,0,0,40,52,0,4,536,0,0,2,1,0,1,0,2,3,0,0,1,97,0,0,};#include <sqlca.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "posOracle.h"
#include "pub.h"


int conn_db(char * user , char * password ,char db)
{
	/* EXEC SQL WHENEVER SQLERROR GOTO conn_err; */ 
	/* EXEC SQL CONNECT :user IDENTIFIED BY :password; */ { 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  *)user; 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  *)password; 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); if (sqlca.sqlcode < 0) goto conn_err;}	
	makelog("debug.log","connect success!");
	return 0;
  conn_err:
	/* EXEC SQL WHENEVER SQLERROR CONTINUE; */ 
	 /*EXEC SQL ROLLBACK RELEASE;*/
	makelog("debug.log",sqlca.sqlerrm.sqlerrmc);
	return -1;
}

int db_disconnect()
{
	/* EXEC SQL WHENEVER SQLERROR CONTINUE; */ 
	/*EXEC SQL ROLLBACK RELEASE;*/
	/* EXEC SQL COMMIT WORK RELEASE; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 4; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )36; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char  *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int  )0; sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);}
	makelog("debug.log", "disconnect from database");
	return 0;
}

int get_data(int empno)
{
	/* EXEC SQL BEGIN DECLARE SECTION; */ 
	/* VARCHAR  name[12]; */ struct { unsigned short len; unsigned char arr[12]; } name;
	/*memset(name,0,sizeof(name));*/
	int sal;
	int deptno;
	/* EXEC SQL END DECLARE SECTION; */ 
	/* EXEC SQL WHENEVER NOT FOUND GOTO not_find; */ 
	/* EXEC SQL WHENEVER SQLERROR GOTO get_err; */ 
	/* EXEC SQL SELECT ename,sal,deptno INTO :name,:sal,:deptno FROM EMP WHERE empno=:empno; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 4; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select ename ,sal ,deptno into :b0,:b1,:b2  from EMP where \empno=:b3"; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )51; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char  *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int  )0; sqlstm.sqhstv[0] = (         void  *)&name; sqlstm.sqhstl[0] = (unsigned int  )14; 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  *)&sal; sqlstm.sqhstl[1] = (unsigned int  )sizeof(int); 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  *)&deptno; sqlstm.sqhstl[2] = (unsigned int  )sizeof(int); 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  *)&empno; sqlstm.sqhstl[3] = (unsigned int  )sizeof(int); 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.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 == 1403) goto not_find; if (sqlca.sqlcode < 0) goto get_err;}
/*	name.len=strlen(name.arr);*/
	name.arr[name.len]='\0';
	/*printf("name=%s,sal=%d,deptno=%d",name.arr,sal,deptno);*/
	return 0;
  not_find:
	/* EXEC SQL WHENEVER NOT FOUND CONTINUE; */ 
	makelog("debug.log","no data found");
	return -1;
  get_err:
	  /* EXEC SQL WHENEVER SQLERROR CONTINUE; */ 
	 makelog("debug.log",sqlca.sqlerrm.sqlerrmc);
	return -2;
}
int login(char * userName,char * password,int key)
{	
	char passwd[13];
	char staff_id[7];
	char staff_name[16];
	int  staff_type;
	short sstaff_type;
	short spasswd;
	short sstaff_name;
	memset(passwd,0,sizeof(passwd));
	/* EXEC SQL WHENEVER NOT FOUND GOTO not_found; */ 
	/* EXEC SQL WHENEVER SQLERROR GOTO logerr; */ 
	/* EXEC SQL SELECT staff_pwd,staff_id,staff_name,staff_type INTO :passwd :spasswd,:staff_id,:staff_name :sstaff_name,:staff_type :sstaff_type FROM STAFF WHERE staff_id=:userName; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 5; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select staff_pwd ,staff_id ,staff_name ,staff_type into :b0\:b1,:b2,:b3:b4,:b5:b6  from STAFF where staff_id=:b7"; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )82; sqlstm.selerr = (unsigned short)1; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char  *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int  )0; sqlstm.sqhstv[0] = (         void  *)passwd; sqlstm.sqhstl[0] = (unsigned int  )13; sqlstm.sqhsts[0] = (         int  )0; sqlstm.sqindv[0] = (         void  *)&spasswd; 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_id; sqlstm.sqhstl[1] = (unsigned int  )7; 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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -