📄 mysqlport.cpp
字号:
/*********************************************************************** Copyright Copyright (C) 2008 Newcon All Rights Reserved* System Name Panasonic* Source Name Mysqlport.cpp* Version Date Editor Modification* 1.0 2008/04/17 顾文良 新建**********************************************************************/#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <mysql/mysql.h>#include "Mysqlport.h"CSqlPort::CSqlPort(){ m_mysql = NULL;}CSqlPort::~CSqlPort(){}//******************************************************************************// Function Name// OpenSQL()// Function Desc// 连接数据库// Return Value// int// = 0 连接成功// = 1 连接失败// Parameter// 无//// Version Date Editor Modification// 1.0 2008/04/17 顾文良 新建//******************************************************************************int CSqlPort::OpenSQL(){ m_mysql = mysql_init(NULL); if(mysql_real_connect(m_mysql, host, user, pass, db, 3306, NULL, 0))
{
printf("connect ok!\n");
return 0;
}
else
{
// fprintf(stderr, "Failed to connect to database: Error: %s\n",mysql_error(&mysql));
printf("ERROR\n"); return 1;
}}//******************************************************************************// Function Name// CloseSQL()// Function Desc// 关闭数据库// Return Value// 无// Parameter// 无//// Version Date Editor Modification// 1.0 2008/04/17 顾文良 新建//******************************************************************************void CSqlPort::CloseSQL(){ mysql_close(m_mysql);}//******************************************************************************// Function Name// SqlCmd()// Function Desc// 插入、更新、删除操作// Return Value// int// =-1 连接数据库不成功// = 0 操作成功// 非0 操作失败// Parameter// [in]char *cmds SQL语句//// Version Date Editor Modification// 1.0 2008/04/17 顾文良 新建//******************************************************************************int CSqlPort::SqlCmd(char *cmds){ if(m_mysql == NULL) { printf("Connect ERROR!\n"); return -1; } int que; que = mysql_query(m_mysql,cmds); if(que != 0)
{
printf("USE SQL failed!\n");
return que;
} else { printf("USE SQL Success\n"); return que; }}//******************************************************************************// Function Name// SqlQuery()// Function Desc// 查询操作// Return Value// 指向result的指针 操作成功// NULL 连接失败、操作失败或没有需要查询的结果// Parameter// [in]char *cmds SQL语句//// Version Date Editor Modification// 1.0 2008/04/17 顾文良 新建//******************************************************************************MYSQL_RES * CSqlPort::SqlQuery(char *cmds){
MYSQL_RES *result;
if(m_mysql == NULL) { printf("Connect ERROR!\n"); return NULL; }
if(mysql_query(m_mysql,cmds) != 0)
{
printf("USE SQL failed!\n");
return NULL;
// return mysql_errno(m_mysql);
}
result = mysql_store_result(m_mysql);
if(result == NULL)
{
printf("NULL !\n");
return NULL;
// return mysql_errno(m_mysql);
}
else
{
printf("Success !\n");
return result; }}//******************************************************************************// Function Name// Begin()// Function Desc// 开始事务// Return Value// int// =-1 连接数据库失败// = 0 开启事务成功// 非0 开启事务失败// Parameter// 无//// Version Date Editor Modification// 1.0 2008/04/17 顾文良 新建//******************************************************************************int CSqlPort::Begin(){ int flg; if(m_mysql == NULL) { printf("Connect ERROR!\n"); return -1; } flg = mysql_query(m_mysql, "BEGIN");//或者使用"START TRANSACTION" if(flg == 0) { printf("BEGIN Success\n"); return flg; } else { printf("BEGIN Error!\n"); return flg; }}//******************************************************************************// Function Name// RollBack()// Function Desc// 回滚事务// Return Value// int// =-1 连接数据库失败// = 0 回滚事务成功// 非0 回滚事务失败// Parameter// 无//// Version Date Editor Modification// 1.0 2008/04/17 顾文良 新建//******************************************************************************int CSqlPort::RollBack(){ if(m_mysql == NULL) { printf("Connect ERROR!\n"); return -1; } int flg; flg = mysql_query(m_mysql, "ROLLBACK"); if(flg == 0) { printf("ROLLBACK Success\n"); return flg; } else { printf("ROLLBACK Error!\n"); return flg; }}//******************************************************************************// Function Name// Commit()// Function Desc// 提交事务// Return Value// int// =-1 连接数据库失败// = 0 提交事务成功// 非0 提交事务失败// Parameter// 无//// Version Date Editor Modification// 1.0 2008/04/17 顾文良 新建//******************************************************************************int CSqlPort::Commit(){ if(m_mysql == NULL) { printf("Connect ERROR!\n"); return -1; } int flg; flg = mysql_query(m_mysql, "COMMIT"); if(flg == 0) { printf("COMMIT Success\n"); return flg; } else { printf("COMMIT Error!\n"); return flg; }}//******************************************************************************// Function Name// Transcation()// Function Desc// 完整的一个事务过程// Return Value// int// =-1 连接数据库失败// = 0 提交事务成功// = 1 操作失败// Parameter// [in]char *cmds SQL语句//// Version Date Editor Modification// 1.0 2008/04/17 顾文良 新建//******************************************************************************int CSqlPort::Transcation(char *cmds)
{
//事务处理
int Flag = 0;
if (mysql_query(m_mysql,"BEGIN "))//或者使用"START TRANSACTION"
{
printf( "error: BEGIN \n");
Flag = 1;
return(1);
}
// mysql_query(m_mysql, "set @@autocommit = 0");
//执行SQL语句
if(Flag == 0)
{
if(mysql_query(m_mysql, cmds))
{
printf( "ERROR: %S\n ",cmds);
Flag = 1;
// 出错数据回滚
mysql_query(m_mysql, "ROLLBACK ");
return(1);
}
}
// 正确就commit提交数据
if(Flag == 0)
{
if(mysql_query(m_mysql, "COMMIT "))
{
printf( "error: COMMIT \n");
return(1);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -