#include "stdafx.h"  //vc 预编译头部文件
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <sqlda.h>
#include <sqlcpr.h>
#include "hxddb.h"EXEC SQL BEGIN DECLARE SECTION;
 VARCHAR vUid[20]; //username
   VARCHAR vPwd[20]; //password
   VARCHAR vConn[20];                      /* employee salary                     */
EXEC SQL END DECLARE SECTION;
//EXEC SQL INCLUDE SQLCA.H;
EXEC SQL INCLUDE SQLCA;
//MemCopy() 字符串拷贝,末位不加'\0'
int MemCopy(char *t,char *s,int len)
{
   int i;
   for(i=0;i<len && *(s+i)!=0;i++)
      *(t+i)=*(s+i);
   return i;
}//StrCopy() 字符串拷贝,末位加'\0'
int StrCopy(char *t, char *s,int len)
{
   int i;
 
   for(i=0;i<len && *(s+i)!=0;i++) *(t+i)=*(s+i);
   *(t+i)=0;
   return i;
}int DBLogOn(char* user, char* passwd, char* connstr)
{
vUid.len = MemCopy((char*)vUid.arr, user, 20);
vPwd.len = MemCopy((char*)vPwd.arr, passwd, 20);
vConn.len = MemCopy((char*)vConn.arr, connstr, 20);

EXEC SQL CONNECT :vUid IDENTIFIED BY :vPwd USING :vConn;
    return sqlca.sqlcode;
}int DBLogOff(void)
{
EXEC SQL ROLLBACK WORK RELEASE;
return sqlca.sqlcode ;
}
/*
int GetOrderInfo(char* sCallerId, char* sCalledId, char* sOriCallerId,
long* pnCallId)
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR vCallerId[20];
VARCHAR vCalledId[20];
VARCHAR vOriCallerId[20];
VARCHAR vUserCode[20];
long   nCallId;
EXEC SQL END DECLARE SECTION;
 
char sUserCode[20] = {0}; long lRetCode0=-1;
long lRetCode1=-1;
long lRet=-1;
EXEC SQL SELECT c_aservicenum ,c_programno ,c_callee ,c_caller ,c_serno 
INTO :vCallerId,:vUserCode,:vCalledId,:vOriCallerId,:nCallId from 
// t_ordersong where c_playtime >= (sysdate-0.00694) AND C_DIALOUTTIMES<3 
t_ordersong where sysdate >= c_playtime AND sysdate >= c_dialouttime+0.00347 and
C_DIALOUTTIMES<3 AND c_status = 0 AND rownum = 1; lRetCode0=sqlca.sqlcode;
if(lRetCode0 == 0)
{
StrCopy(sCallerId,(char *)vCallerId.arr,vCallerId.len);
StrCopy(sUserCode,(char *)vUserCode.arr,vUserCode.len);
if ( strcmp(sUserCode," ") !=0 )
{
strcat(sCallerId,sUserCode);
}
StrCopy(sCalledId,(char *)vCalledId.arr,vCalledId.len); StrCopy(sOriCallerId,(char *)vOriCallerId.arr,vOriCallerId.len);
*pnCallId = nCallId; EXEC SQL update t_ordersong set C_DIALOUTTIME=sysdate 
where c_serno = :nCallId;
lRetCode1=sqlca.sqlcode;
if(lRetCode1 == 0)
{
lRet=1;
EXEC SQL COMMIT WORK;
}
else
{
lRet=-1;
EXEC SQL ROLLBACK WORK;
}
}
else if(lRetCode0 == 1403)//no record
{
lRet=-1;
}
  
return lRet;

}