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

📄 tcpt.c

📁 dos下pos机程序 连接sybase数据库 使用Microsoft c7 编译
💻 C
字号:
/*******************************************************************/
/*					     POS-MIS系统 --- 商场                      */
/*                   工商银行昆明市分行 - 昆百大集团    	       */
/*                       杭州新利软件有限公司                      */
/*                            <TCPT.C>                             */
/*                              ---- 前台收银机数据交换函数        */
/*                                                                 */
/*     Modification History:                                       */
/*			Author : LiuSong                                       */
/*          Date   : 2001.04                                       */
/*	        Action : Modify Write	                               */
/*                                                                 */
/*******************************************************************/

#define DBMSDOS

#include <sqlfront.h>
#include <sqldb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "card.h"

#define DATELEN 26
#define TYPELEN 2
#define STDEXIT 0

// --- 全局变量定义 ---
DBPROCESS       *dbproc,*dbproc_thk;    // 与SQL Server的联结
RETCODE         result_code;            // SQL命令执行的结果代码

int ConnectDb(char *user,char *pass,char *server)
// 联结SQL Server(用户名,密码,服务器名)
{
	LOGINREC        *login;

	login = dblogin();
	DBSETLUSER(login, user);
	DBSETLPWD(login, pass);
	DBSETLAPP(login, "xyk_xf_ans");
	dbsetlogintime(60);

	dbproc = dbopen(login, "server_main");

	if (dbproc == NULL) {
		dbfreebuf(dbproc);
		free(login);

		return 0;
	}

	dbuse(dbproc,"yhdb");

	return 1;
}

int FreeLogin(char *user, char *pass, char *server)
{
	LOGINREC        *login;

	login = dblogin();
	DBSETLUSER(login, user);
	DBSETLPWD(login, pass);
	DBSETLAPP(login, "xyk_xf_ans");

	dbfreelogin(login);

	return 1;
}


int SendData(PTOH ptoh)
{
	dbfreebuf(dbproc);
	dbuse(dbproc, "yhdb");
	if(dbcmd(dbproc, "insert xyk_xf_req")==FAIL)
	{
	 return 0;
	}
	if(dbcmd(dbproc, " (trcode,oldcode,posid,operid,trdate,trtime,amount,track2,track3,pin,authno,mac,unitcardflag,status,flag) ")==FAIL)
	{
	 return 0;
	}
	if(dbfcmd(dbproc, " values ('%c','%c','%s','%s','%s',",
		   ptoh.TrCode,ptoh.OldCode,ptoh.PosId,ptoh.OperId,ptoh.TrDate)==FAIL)
	{
	 return 0;
	}

	if(dbfcmd(dbproc, " '%s','%s','%s','%s','%s',",
		   ptoh.TrTime,ptoh.Amount,ptoh.Track2,ptoh.Track3,ptoh.Pin)==FAIL)
	{
	 return 0;
	}
	if(dbfcmd(dbproc, " '%s','%s','%c','%c','%s')",
		   ptoh.AuthNo,ptoh.Mac,ptoh.UnitCardFlag,ptoh.Status,ptoh.Flag)==FAIL)
	{
	 return 0;
	}

	if(dbsqlexec(dbproc)==FAIL)
	{
	 return 0;
	}
	while ((result_code = dbresults(dbproc)) != NO_MORE_RESULTS)
	{
	 if (result_code==FAIL)
	 {
	  return 0;
	 }
	}
	return 1;
}

int RecvData(HTOP htop)
{
	FILE *savefp;
	char rejcode[2+1];
	char errdisp[40+1];
	char posser[6+1];
	char vposser[6+1];
//	char hostser[12+1];
	char cardno[20+1];
	char expiry[4+1];
	char amount[12+1];
    char authno[6+1];
	char bankid[1+1];
	char bankname[20+1];
	char cardname[20+1];
	char prttime[1+1];
	char awardclass[1+1];
	char note[20+1];
	char status[1+1];
	char flag[6+1];

	memset(rejcode,0,sizeof(rejcode));
	memset(errdisp,0,sizeof(errdisp));
	memset(posser,0,sizeof(posser));
	memset(vposser,0,sizeof(vposser));
	memset(cardno,0,sizeof(cardno));
	memset(expiry,0,sizeof(expiry));
	memset(amount,0,sizeof(amount));
	memset(authno,0,sizeof(authno));
	memset(bankid,0,sizeof(bankid));
	memset(bankname,0,sizeof(bankname));
	memset(cardname,0,sizeof(cardname));
	memset(prttime,0,sizeof(prttime));
	memset(awardclass,0,sizeof(awardclass));
	memset(note,0,sizeof(note));
	memset(status,0,sizeof(status));
	memset(flag,0,sizeof(flag));

	dbfreebuf(dbproc);
	dbuse(dbproc, "yhdb");
	dbcmd(dbproc," select * from xyk_xf_ans ");
	dbfcmd(dbproc," where status='0' ") ;
	dbsqlexec(dbproc);

	while ((result_code = dbresults(dbproc)) != NO_MORE_RESULTS) {
	    if (result_code == SUCCEED)	{
		    dbbind(dbproc, 1, NTBSTRINGBIND, (DBCHAR) 0, rejcode);
			dbbind(dbproc, 2, NTBSTRINGBIND, (DBCHAR) 0, errdisp);
			dbbind(dbproc, 3, NTBSTRINGBIND, (DBCHAR) 0, posser); //khh
			dbbind(dbproc, 4, NTBSTRINGBIND, (DBCHAR) 0, vposser);
//			dbbind(dbproc, 5, NTBSTRINGBIND, (DBCHAR) 0, hostser);
			dbbind(dbproc, 5, NTBSTRINGBIND, (DBCHAR) 0, cardno);
			dbbind(dbproc, 6, NTBSTRINGBIND, (DBCHAR) 0, expiry);
			dbbind(dbproc, 7, NTBSTRINGBIND, (DBCHAR) 0, amount);
			dbbind(dbproc, 8, NTBSTRINGBIND, (DBCHAR) 0, authno);
			dbbind(dbproc, 9, NTBSTRINGBIND, (DBCHAR) 0, bankid);
			dbbind(dbproc, 10, NTBSTRINGBIND, (DBCHAR) 0, bankname);
			dbbind(dbproc, 11, NTBSTRINGBIND, (DBCHAR) 0, cardname);
			dbbind(dbproc, 12, NTBSTRINGBIND, (DBCHAR) 0, prttime);
			dbbind(dbproc, 13, NTBSTRINGBIND, (DBCHAR) 0, awardclass);
			dbbind(dbproc, 14, NTBSTRINGBIND, (DBCHAR) 0, note);
			dbbind(dbproc, 15, NTBSTRINGBIND, (DBCHAR) 0, status);
			dbbind(dbproc, 16, NTBSTRINGBIND, (DBCHAR) 0, flag);

			while (dbnextrow(dbproc) != NO_MORE_ROWS) {
			    strcpy(htop.RejCode,rejcode);
			    strcpy(htop.ErrDisp,errdisp);
			    strcpy(htop.PosSer,posser);
			    strcpy(htop.VposSer,vposser);
//			    strcpy(htop.HostSer,hostser);
			    strcpy(htop.CardNo,cardno);
			    strcpy(htop.Expiry,expiry);
			    strcpy(htop.Amount,amount);
			    strcpy(htop.AuthNo,authno);
			    htop.BankId=bankid[0];
			    strcpy(htop.BankName,bankname);
			    strcpy(htop.CardName,cardname);
			    htop.PrtTimes=prttime[0];
			    htop.AwardClass=awardclass[0];
			    strcpy(htop.Note1,note);
			    htop.Status=status[0];
			    strcpy(htop.Flag,flag);
            }

			if (DBCOUNT(dbproc) == 0) {
			    return 0;
			}
        }
    }

	savefp = fopen("savefile", "w");
	fwrite(&htop, sizeof(htop), 1, savefp);
	fclose(savefp);

	return 1;
}

int UpData(HTOP htop)
{
	dbfreebuf(dbproc);
	dbcmd(dbproc," update xyk_xf_ans set status='1' ");
	dbfcmd(dbproc," where posser='%s' and flag='%s' ",htop.PosSer,htop.Flag);
	dbsqlexec(dbproc);
	while ((result_code = dbresults(dbproc)) != NO_MORE_RESULTS)
	{       if (result_code==FAIL) return 0;
	}
	return 1;
}

⌨️ 快捷键说明

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