📄 db_func.cpp
字号:
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,strlen(bus_infor.Bus_Route),0,bus_infor.Bus_Route,strlen(bus_infor.Bus_Route),&cbBus_Route);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,strlen(bus_infor.Bus_Type_Name),0,bus_infor.Bus_Type_Name,strlen(bus_infor.Bus_Type_Name),&cbBus_Type_Name);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,4,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,strlen(bus_infor.Bus_Remark),0,bus_infor.Bus_Remark,strlen(bus_infor.Bus_Remark),&cbBus_Remark);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,5,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,sizeof(bus_infor.Bus_Ticket),0,&bus_infor.Bus_Ticket,sizeof(bus_infor.Bus_Ticket),&cbBus_Ticket);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,6,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,sizeof(bus_number),0,&bus_number,sizeof(bus_number),&cbbus_number);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,7,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,strlen(bus_type_name),0,bus_type_name,strlen(bus_type_name),&cbbus_type_name);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
//执行查询
retcode = SQLExecute(g_hstmt);
if ((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
//关闭
retcode = SQLFreeStmt(hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLCloseCursor!");
return -1;
}
return -1;
}
//关闭当前
retcode = SQLFreeStmt(g_hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLFreeStmt error!");
return -1;
}
//
return 0;
}
int DB_BUS_INFOR_Query_IsTrue(SQLHSTMT g_hstmt, int bus_number, char *bus_type_name)
{
SQLCHAR *SqlStatement;
//
SQLINTEGER cbbus_number = 0;
SQLINTEGER cbbus_type_name = SQL_NTS;
//Sql Statement
SqlStatement =(unsigned char *) "SELECT bus_type_name FROM bus_infor WHERE bus_number=? AND bus_type_name=?";
//Prepare
retcode = SQLPrepare(g_hstmt,SqlStatement,SQL_NTS);
if ((retcode!= SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("prepare error!");
return -1;
}
///
retcode = SQLBindCol(g_hstmt,1,SQL_C_CHAR,bus_type_name,sizeof(bus_type_name),&cbbus_type_name);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindCol error!");
return -1;
}
//绑定插入参数
retcode = SQLBindParameter(g_hstmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,sizeof(bus_number),0,&bus_number,sizeof(bus_number),&cbbus_number);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,strlen(bus_type_name),0,bus_type_name,strlen(bus_type_name),&cbbus_type_name);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
//执行查询
retcode = SQLExecute(g_hstmt);
if ((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
//关闭
retcode = SQLFreeStmt(hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLCloseCursor!");
return -1;
}
return -1;
}
//获取数据
retcode = SQLFetch(g_hstmt);
if ((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
//关闭
retcode = SQLFreeStmt(hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLCloseCursor!");
return -1;
}
return -1;
}
//关闭当前
retcode = SQLFreeStmt(g_hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLFreeStmt error!");
return -1;
}
//
return 0;
}
int DB_BUS_INFOR_Delete(SQLHSTMT g_hstmt, int bus_number, char *bus_type_name)
{
SQLCHAR *SqlStatement;
//
SQLINTEGER cbbus_number = SQL_NTS;
SQLINTEGER cbbus_type_name = SQL_NTS;
//Sql Statement
SqlStatement =(unsigned char *) "DELETE FROM bus_infor WHERE bus_number=? AND bus_type_name=?";
//Prepare
retcode = SQLPrepare(g_hstmt,SqlStatement,SQL_NTS);
if ((retcode!= SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("prepare error!");
return -1;
}
//绑定插入参数
retcode = SQLBindParameter(g_hstmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,sizeof(bus_number),0,&bus_number,sizeof(bus_number),&cbbus_number);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,strlen(bus_type_name),0,bus_type_name,strlen(bus_type_name),&cbbus_type_name);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
//执行查询
retcode = SQLExecute(g_hstmt);
if ((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
//关闭
retcode = SQLFreeStmt(hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLCloseCursor!");
return -1;
}
return -1;
}
//关闭当前
retcode = SQLFreeStmt(g_hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLFreeStmt error!");
return -1;
}
//
return 0;
}
int DB_BUS_INFOR_Delete_All(SQLHSTMT g_hstmt)
{
SQLCHAR *SqlStatement;
//
//Sql Statement
SqlStatement =(unsigned char *) "DELETE FROM bus_infor";
//Prepare
retcode = SQLPrepare(g_hstmt,SqlStatement,SQL_NTS);
if ((retcode!= SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("prepare error!");
return -1;
}
//执行查询
retcode = SQLExecute(g_hstmt);
if ((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
//关闭
retcode = SQLFreeStmt(hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLCloseCursor!");
return -1;
}
return -1;
}
//关闭当前
retcode = SQLFreeStmt(g_hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLFreeStmt error!");
return -1;
}
//
return 0;
}
int DB_BUS_INFOR_Insert(SQLHSTMT g_hstmt, BUS_INFOR bus_infor)
{
SQLCHAR *SqlStatement;
//
SQLINTEGER cbBus_Number = 0;
SQLINTEGER cbBus_Ticket = 0;
SQLINTEGER cbBus_Route = SQL_NTS;
SQLINTEGER cbBus_Type_Name = SQL_NTS;
SQLINTEGER cbBus_Remark = SQL_NTS;
//Sql Statement
SqlStatement =(unsigned char *) "INSERT INTO bus_infor (bus_number,bus_route,bus_type_name,bus_remark,bus_ticket) VALUES (?,?,?,?,?)";
//Prepare
retcode = SQLPrepare(g_hstmt,SqlStatement,SQL_NTS);
if ((retcode!= SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("prepare error!");
return -1;
}
//绑定插入参数
retcode = SQLBindParameter(g_hstmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,sizeof(bus_infor.Bus_Number),0,&bus_infor.Bus_Number,sizeof(bus_infor.Bus_Number),&cbBus_Number);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,strlen(bus_infor.Bus_Route),0,bus_infor.Bus_Route,strlen(bus_infor.Bus_Route),&cbBus_Route);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,strlen(bus_infor.Bus_Type_Name),0,bus_infor.Bus_Type_Name,strlen(bus_infor.Bus_Type_Name),&cbBus_Type_Name);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,4,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,strlen(bus_infor.Bus_Remark),0,bus_infor.Bus_Remark,strlen(bus_infor.Bus_Remark),&cbBus_Remark);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
retcode = SQLBindParameter(g_hstmt,5,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,sizeof(bus_infor.Bus_Ticket),0,&bus_infor.Bus_Ticket,sizeof(bus_infor.Bus_Ticket),&cbBus_Ticket);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindParameter error!");
return -1;
}
//执行查询
retcode = SQLExecute(g_hstmt);
if ((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
//关闭
retcode = SQLFreeStmt(hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLCloseCursor!");
return -1;
}
return -1;
}
//关闭当前
retcode = SQLFreeStmt(g_hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLFreeStmt error!");
return -1;
}
//
return 0;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
int DB_SYSTEM_INFOR_Query(SQLHSTMT g_hstmt, char *year, char *month, char *day, char *address)
{
SQLCHAR *SqlStatement;
//
SQLINTEGER cbyear = SQL_NTS;
SQLINTEGER cbmonth = SQL_NTS;
SQLINTEGER cbday = SQL_NTS;
SQLINTEGER cbaddress = SQL_NTS;
//Sql Statement
SqlStatement = (unsigned char *) " SELECT year,month,day,address FROM system ";
//Prepare
retcode = SQLPrepare(g_hstmt,SqlStatement,SQL_NTS);
if ((retcode!= SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("prepare error!");
return -1;
}
//绑定列参数
retcode = SQLBindCol(g_hstmt,1,SQL_C_CHAR,year,5,&cbyear);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindCol error!");
return -1;
}
retcode = SQLBindCol(g_hstmt,2,SQL_C_CHAR,month,sizeof(month),&cbmonth);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindCol error!");
return -1;
}
retcode = SQLBindCol(g_hstmt,3,SQL_C_CHAR,day,sizeof(day),&cbday);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindCol error!");
return -1;
}
retcode = SQLBindCol(g_hstmt,4,SQL_C_CHAR,address,32,&cbaddress);
if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLBindCol error!");
return -1;
}
//执行查询
retcode = SQLExecute(g_hstmt);
if ((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
AfxMessageBox("SQLExecute error!");
return -1;
}
//获取数据
retcode = SQLFetch(g_hstmt);
if ((retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO))
{
//关闭
retcode = SQLFreeStmt(hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLCloseCursor!");
return -1;
}
return -1;
}
//关闭当前
retcode = SQLFreeStmt(g_hstmt,SQL_CLOSE);
if( (retcode != SQL_SUCCESS) && (retcode != SQL_SUCCESS_WITH_INFO) )
{
AfxMessageBox("SQLFreeStmt error!");
return -1;
}
//
return 0;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
/***************************************/
/* 函数名:BusNumAddStation
/* 作用: 将车次号加入到车站中(即设置二进制位1)
/* 输入: nBusNumber-车次号,ldOldNumber-原站点信息变量
/* 输出:
/* 返回值:
/***************************************/
long double BusNumAddStation(int nBusNumber, long double ldOldNumber)
{
long double ldNewNumber;
ldNewNumber = ldOldNumber+pow(2, nBusNumber);
return ldNewNumber;
}
/***************************************/
/* 函数名:LDoubleToStr
/* 作用: 将一实型变量以二进制的形式转化位字符串
/* 输入: ldNumber-实型变量
/* 输出: strTemp-字符串
/* 返回值:0(正常), -1(出错)
/***************************************/
void LDoubleToStr(long double ldNumber, unsigned char strTemp[128])
{
int i,nBit;
long double lgTemp;
memset(strTemp, '0', 128);
for(i=127; i>=0; i--)
{
lgTemp = pow(2, i);
nBit = ldNumber/lgTemp;
if(nBit == 1)
{
strTemp[i] = '1';
ldNumber = ldNumber-pow(2, i);
}
}
}
/***************************************/
/* 函数名:StrToLDouble
/* 作用: 将字符串转化为实型变量
/* 输入: strTemp-字符串
/* 输出:
/* 返回值:实型变量
/***************************************/
long double StrToLDouble(unsigned char strTemp[128])
{
int i;
long double ldNumber=0.0;
for(i=0; i<128; i++)
{
if(strTemp[i] == '1')
{
ldNumber = ldNumber+pow(2, i);
}
}
return ldNumber;
}
/***************************************/
/* 函数名:LDoubleToStr
/* 作用: 在二进制的形式比较两个实型每位的异同,记录每个相同的位数
/* 输入: ldNumberFirst:变量一, ldNumberSecond:变量二
/* 输出: ldResult:记录每个相同的位数的实型变量
/* 返回值: 相同的位数的个数
/***************************************/
void CompareLNumber(long double ldNumberFirst, long double ldNumberSecond, long double *ldResult)
{
int i,num;
unsigned char strTempFisrt[128],strTempSecond[128];
num = 0;
*ldResult = 0.0;
LDoubleToStr(ldNumberFirst, strTempFisrt); // 转化为二进制字符串
LDoubleToStr(ldNumberSecond, strTempSecond);
for(i=0; i<128; i++)
{
if( (strTempFisrt[i] == 1) && (strTempSecond[i] == 1) )
{
num++;
*ldResult = *ldResult+pow(2, i);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -