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

📄 oracledb.c

📁 在linux平台下模拟超市的收银系统即POS机
💻 C
📖 第 1 页 / 共 5 页
字号:

	/* EXEC SQL COMMIT; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 9; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )459; 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;
INSERT_ERR:
	/* EXEC SQL WHENEVER SQLERROR CONTINUE; */ 
	error_login(sqlca.sqlerrm.sqlerrmc,"errlog.txt",0);
	return;
}


/*退货后修改销售商品总金额*/
void Modify_Sale_Money(char * sale_id,float money)
{
	/* EXEC SQL WHENEVER SQLERROR GOTO UPDATE_ERR; */ 
	/* EXEC SQL UPDATE sale SET given_sum=given_sum-:money,real_sum=real_sum-:money,sale_money=sale_money-:money WHERE sale_id=:sale_id; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 9; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "update sale  set given_sum=(given_sum-:b0),real_sum=(real_s\um-:b0),sale_money=(sale_money-:b0) where sale_id=:b3"; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )474; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char  *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int  )0; sqlstm.sqhstv[0] = (         void  *)&money; sqlstm.sqhstl[0] = (unsigned int  )sizeof(float); 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  *)&money; sqlstm.sqhstl[1] = (unsigned int  )sizeof(float); 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  *)&money; sqlstm.sqhstl[2] = (unsigned int  )sizeof(float); 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  *)sale_id; 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.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 UPDATE_ERR;}
	/* EXEC SQL COMMIT; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 9; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )505; 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 UPDATE_ERR;} /*当插入或删除的时候要提交事务*/
	/*
	char m[10];
	sprintf(m,"%d",money);
	error_login(sale_id,"errlog.txt",0);
	error_login(m,"errlog.txt",0);
	*/
	return;
UPDATE_ERR:
	/* EXEC SQL WHENEVER SQLERROR CONTINUE; */ 
	/*error_login(sqlca.sqlerrm.sqlerrmc,"errlog.txt",0);*/
	return;
}


/*修改商品库存量*/
void ReduceStock(char * barcode,int amount) /*barcode 条形码 amount 为要减少的数量*/
{
	/* EXEC SQL WHENEVER SQLERROR GOTO UPDATE_ERR; */ 
	/*update product set count=count+13 where bar_code='CN000001'*/
	/* EXEC SQL UPDATE product SET count=count-:amount WHERE bar_code=:barcode; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 9; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "update product  set count=(count-:b0) where bar_code=:b1"; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )520; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char  *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int  )0; sqlstm.sqhstv[0] = (         void  *)&amount; sqlstm.sqhstl[0] = (unsigned int  )sizeof(int); 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  *)barcode; 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 UPDATE_ERR;}
	/* EXEC SQL COMMIT; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 9; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )543; 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 UPDATE_ERR;} /*当插入或删除的时候要提交事务*/
	return;
UPDATE_ERR:
	/* EXEC SQL WHENEVER SQLERROR CONTINUE; */ 
	error_login(sqlca.sqlerrm.sqlerrmc,"errlog.txt",0);
	return;
}

/*插入到销售明细表*/
/*
void InsertIntoSaleDetail(sale_detail * saleDetail)
{
	EXEC SQL WHENEVER SQLERROR GOTO INSERT_ERR;
	EXEC SQL INSERT INTO sale_detail (detail_id,dale_id,bar_code,count,sale_price,sale_state) VALUES (:saleDetail->detail_id,:saleDetail->sale_id,:saleDetail->bar_code,:saleDetail->count,:saleDetail->sale_price,:saleDetail->sale_state);
	EXEC SQL COMMIT;
	return;
INSERT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	error_login(sqlca.sqlerrm.sqlerrmc,"log.txt",0);
	return;
}
*/


/*去掉左右空格*/
void Trim(char * ch)
{
	int m;
	int len2=strlen(ch);
	for(m=0;m<len2;m++) /*去前面空格*/
	{
		 if(ch[m]!=' ')
			 break;
	}
	strcpy(ch,&ch[m]);
	int len3=strlen(ch);
	for(m=len3-1;m>0;m--) /*q去后面空格*/
	{
		if(ch[m]!=' ')
		{
			ch[m+1]='\0';
			break;
		}
	} 	
}



void select_staff_table(char * name)
{
	staff *s=(staff *) malloc(sizeof(staff));/*员工表*/
	staff_ind si; /*指示器   如果用到结构体的话,那也要用对应的指示器结构体*/

	/* EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR; */ 
	/* EXEC SQL SELECT * INTO :s :si FROM staff WHERE STAFF_NAME=:name; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 9; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "select * into :s2:s1 ,:s4:s3 ,:s6:s5 ,:s8:s7 ,:s10:s9   fro\m staff where STAFF_NAME=:b2"; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )558; 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  *)s->id; sqlstm.sqhstl[0] = (unsigned int  )7; sqlstm.sqhsts[0] = (         int  )0; sqlstm.sqindv[0] = (         void  *)&si.id; 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  *)s->name; sqlstm.sqhstl[1] = (unsigned int  )16; sqlstm.sqhsts[1] = (         int  )0; sqlstm.sqindv[1] = (         void  *)&si.name; 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  *)s->pwd; sqlstm.sqhstl[2] = (unsigned int  )17; sqlstm.sqhsts[2] = (         int  )0; sqlstm.sqindv[2] = (         void  *)&si.pwd; 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  *)&s->type; sqlstm.sqhstl[3] = (unsigned int  )sizeof(int); sqlstm.sqhsts[3] = (         int  )0; sqlstm.sqindv[3] = (         void  *)&si.type; 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  *)s->remark; sqlstm.sqhstl[4] = (unsigned int  )31; sqlstm.sqhsts[4] = (         int  )0; sqlstm.sqindv[4] = (         void  *)&si.remark; 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  *)name; sqlstm.sqhstl[5] = (unsigned int  )0; 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.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 SELECT_ERR;}
	if(si.name==-1)
	{
		printf("name is null");
	}
	printf("ID: %s\n",s->id);
	printf("name: %s\n",s->name);
	printf("pwd: %s\n",s->pwd);
	printf("type: %d\n",s->type);
	printf("remark: %s\n",s->remark);
	return;
	SELECT_ERR:
		/* EXEC SQL WHENEVER SQLERROR CONTINUE; */ 
		printf("出错\n");
}








/*删除一个sale表中符合sale_id的记录*/
int Delete_Bill(char *sale_id)
{
	/* EXEC SQL WHENEVER SQLERROR GOTO DEL_ERR; */ 
	/* EXEC SQL DELETE sale WHERE sale_id=:sale_id; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 9; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.stmt = "delete  from sale  where sale_id=:b0"; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )597; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char  *)&sqlca; sqlstm.sqlety = (unsigned short)256; sqlstm.occurs = (unsigned int  )0; sqlstm.sqhstv[0] = (         void  *)sale_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.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 DEL_ERR;}
	/* EXEC SQL COMMIT; */ { struct sqlexd sqlstm; sqlstm.sqlvsn = 10; sqlstm.arrsiz = 9; sqlstm.sqladtp = &sqladt; sqlstm.sqltdsp = &sqltds; sqlstm.iters = (unsigned int  )1; sqlstm.offset = (unsigned int  )616; 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 DEL_ERR;}

⌨️ 快捷键说明

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