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

📄 db_func.cpp

📁 一个简单的公交查询管理系统
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		//关闭
		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_STATION_INFOR_Modify_BusNumber(SQLHSTMT g_hstmt, char *station_name, char *bus_number)
{
	//
	SQLCHAR *SqlStatement;
	//  
	SQLINTEGER cbstation_name = SQL_NTS;
	SQLINTEGER cbbus_number   = SQL_NTS;
    //Sql Statement
	SqlStatement =(unsigned char *) "UPDATE station_infor SET bus_number=? WHERE station_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_CHAR,SQL_CHAR,strlen(bus_number),0,bus_number,strlen(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(station_name),0,station_name,strlen(station_name),&cbstation_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))
	{
		AfxMessageBox("SQLExecute error!");
		//关闭
		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_STATION_INFOR_Delete(SQLHSTMT g_hstmt, char *station_name)
{
	SQLCHAR *SqlStatement;
	//  
	SQLINTEGER cbstation_name = SQL_NTS;
    //Sql Statement
	SqlStatement =(unsigned char *) "DELETE FROM station_infor WHERE station_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_CHAR,SQL_CHAR,strlen(station_name),0,station_name,strlen(station_name),&cbstation_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_STATION_INFOR_Delete_All(SQLHSTMT g_hstmt)
{
	SQLCHAR *SqlStatement;
	//  
    //Sql Statement
	SqlStatement =(unsigned char *) "DELETE FROM station_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_STATION_INFOR_Insert(SQLHSTMT g_hstmt, STATION_INFOR station_infor)
{
	SQLCHAR *SqlStatement;
	//    
	SQLINTEGER cbBus_Number        = SQL_NTS;
	SQLINTEGER cbStation_Name      = SQL_NTS;
	SQLINTEGER cbStation_Type_Name = SQL_NTS;
    //Sql Statement
	SqlStatement =(unsigned char *) "INSERT INTO station_infor (station_name,bus_number,station_type_name) 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_CHAR,SQL_CHAR,strlen(station_infor.Station_Name),0,station_infor.Station_Name,strlen(station_infor.Station_Name),&cbStation_Name);
	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(station_infor.Bus_Number),0,station_infor.Bus_Number,strlen(station_infor.Bus_Number),&cbBus_Number);
	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(station_infor.Station_Type_Name),0,station_infor.Station_Type_Name,strlen(station_infor.Station_Type_Name),&cbStation_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_BusNumber(SQLHSTMT g_hstmt, BUS_INFOR *bus_infor, BUS_INFOR *head, int bus_number)
{
	BUS_INFOR *pS,*pEnd;
	SQLCHAR *SqlStatement;
	//  
	SQLINTEGER cbbus_number = 0;
	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 *) " SELECT bus_number,bus_route,bus_type_name,bus_remark,bus_ticket FROM bus_infor WHERE bus_number=? ORDER BY bus_number ASC"; //ORDER BY station_type_name ASC";
	
	//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 = SQLBindCol(g_hstmt,1,SQL_C_SLONG,&bus_infor->Bus_Number,0,&cbBus_Number);
	if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
	{
		AfxMessageBox("SQLBindCol error!");
		return -1;
	}
	
	retcode = SQLBindCol(g_hstmt,2,SQL_C_CHAR,bus_infor->Bus_Route,sizeof(bus_infor->Bus_Route),&cbBus_Route);
	if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
	{
		AfxMessageBox("SQLBindCol error!");
		return -1;
	}

	retcode = SQLBindCol(g_hstmt,3,SQL_C_CHAR,bus_infor->Bus_Type_Name,sizeof(bus_infor->Bus_Type_Name),&cbBus_Type_Name);
	if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
	{
		AfxMessageBox("SQLBindCol error!");
		return -1;
	}
	
	retcode = SQLBindCol(g_hstmt,4,SQL_C_CHAR,bus_infor->Bus_Remark,sizeof(bus_infor->Bus_Remark),&cbBus_Remark);
	if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
	{
		AfxMessageBox("SQLBindCol error!");
		return -1;
	}

	retcode = SQLBindCol(g_hstmt,5,SQL_C_SLONG,&bus_infor->Bus_Ticket,0,&cbBus_Ticket);
	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;
	}
	
	//赋值
	head->Bus_Number = bus_infor->Bus_Number;
    head->Bus_Ticket = bus_infor->Bus_Ticket;
	strcpy(head->Bus_Route,     bus_infor->Bus_Route);
	strcpy(head->Bus_Remark,    bus_infor->Bus_Remark);
	strcpy(head->Bus_Type_Name, bus_infor->Bus_Type_Name);

    pEnd = head;
	memset(bus_infor,0,sizeof(BUS_INFOR));
	while ( (retcode=SQLFetch(g_hstmt)) != SQL_NO_DATA )
	{ 
		pS = new BUS_INFOR;
		memset(pS,0,sizeof(BUS_INFOR));
		//赋值
		pS->Bus_Number = bus_infor->Bus_Number;
		pS->Bus_Ticket = bus_infor->Bus_Ticket;
		strcpy(pS->Bus_Route,     bus_infor->Bus_Route);
		strcpy(pS->Bus_Remark,    bus_infor->Bus_Remark);
		strcpy(pS->Bus_Type_Name, bus_infor->Bus_Type_Name);
		
		pEnd->next = pS;
		pEnd = pS;
		memset(bus_infor,0,sizeof(BUS_INFOR));
	}    //end of while  
	
	pEnd->next = NULL;
	
    //关闭当前
	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(SQLHSTMT g_hstmt, BUS_INFOR *bus_infor, BUS_INFOR *head)
{
	BUS_INFOR *pS,*pEnd;
	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 *) " SELECT bus_number,bus_route,bus_type_name,bus_remark,bus_ticket FROM bus_infor ORDER BY bus_number ASC"; //ORDER BY station_type_name ASC";
	
	//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_SLONG,&bus_infor->Bus_Number,0,&cbBus_Number);
	if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
	{
		AfxMessageBox("SQLBindCol error!");
		return -1;
	}
	
	retcode = SQLBindCol(g_hstmt,2,SQL_C_CHAR,bus_infor->Bus_Route,sizeof(bus_infor->Bus_Route),&cbBus_Route);
	if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
	{
		AfxMessageBox("SQLBindCol error!");
		return -1;
	}

	retcode = SQLBindCol(g_hstmt,3,SQL_C_CHAR,bus_infor->Bus_Type_Name,sizeof(bus_infor->Bus_Type_Name),&cbBus_Type_Name);
	if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
	{
		AfxMessageBox("SQLBindCol error!");
		return -1;
	}
	
	retcode = SQLBindCol(g_hstmt,4,SQL_C_CHAR,bus_infor->Bus_Remark,sizeof(bus_infor->Bus_Remark),&cbBus_Remark);
	if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))
	{
		AfxMessageBox("SQLBindCol error!");
		return -1;
	}

	retcode = SQLBindCol(g_hstmt,5,SQL_C_SLONG,&bus_infor->Bus_Ticket,0,&cbBus_Ticket);
	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;
	}
	
	//赋值
	head->Bus_Number = bus_infor->Bus_Number;
    head->Bus_Ticket = bus_infor->Bus_Ticket;
	strcpy(head->Bus_Route,     bus_infor->Bus_Route);
	strcpy(head->Bus_Remark,    bus_infor->Bus_Remark);
	strcpy(head->Bus_Type_Name, bus_infor->Bus_Type_Name);

    pEnd = head;
	memset(bus_infor,0,sizeof(BUS_INFOR));
	while ( (retcode=SQLFetch(g_hstmt)) != SQL_NO_DATA )
	{ 
		pS = new BUS_INFOR;
		memset(pS,0,sizeof(BUS_INFOR));
		//赋值
		pS->Bus_Number = bus_infor->Bus_Number;
		pS->Bus_Ticket = bus_infor->Bus_Ticket;
		strcpy(pS->Bus_Route,     bus_infor->Bus_Route);
		strcpy(pS->Bus_Remark,    bus_infor->Bus_Remark);
		strcpy(pS->Bus_Type_Name, bus_infor->Bus_Type_Name);
		
		pEnd->next = pS;
		pEnd = pS;
		memset(bus_infor,0,sizeof(BUS_INFOR));
	}    //end of while  
	
	pEnd->next = NULL;
	
    //关闭当前
	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_Modify(SQLHSTMT g_hstmt, BUS_INFOR bus_infor, int bus_number, char *bus_type_name)
{
	SQLCHAR *SqlStatement;
	//    
	SQLINTEGER cbbus_number = 0;
	SQLINTEGER cbBus_Number = 0;
	SQLINTEGER cbBus_Ticket = 0;
	SQLINTEGER cbBus_Route     = SQL_NTS;
	SQLINTEGER cbBus_Type_Name = SQL_NTS;
	SQLINTEGER cbBus_Remark    = SQL_NTS;
	SQLINTEGER cbbus_type_name = SQL_NTS;
    //Sql Statement
	SqlStatement =(unsigned char *) "UPDATE bus_infor SET bus_number=?,bus_route=?,bus_type_name=?,bus_remark=?,bus_ticket=? 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_infor.Bus_Number),0,&bus_infor.Bus_Number,sizeof(bus_infor.Bus_Number),&cbBus_Number);
	if ((retcode!=SQL_SUCCESS) && (retcode!=SQL_SUCCESS_WITH_INFO))

⌨️ 快捷键说明

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