📄 tcpt.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 + -