#include "sqlservice.h"
Sqlservice::Sqlservice()
{
}
SqlStateAndSqlObject Sqlservice::MySqlconnectstate(sqlstruct struct_data)
{
SqlStateAndSqlObject structdata;
QSqlDatabase db = QSqlDatabase::addDatabase(struct_data.sql_name);
db.setHostName(struct_data.HostName); //连接本地主机
db.setPort(struct_data.port);
db.setDatabaseName(struct_data.DatabaseName);
db.setUserName(struct_data.Username);
db.setPassword(struct_data.Password);
bool ok = db.open();
if(ok)
{
qDebug()<<"Open database success!";
structdata.connect_state = true;
structdata.database_obj = db;
}
else
{
structdata.connect_state = false;
qDebug()<<"Open database fail!";
}
return structdata;
}
bool Sqlservice::Check_table_isexist(QSqlDatabase db,QString table_name)
{
if(db.open())
{
bool flag = false;
QStringList db_tables_list = db.tables();//获取数据库中的表
QStringListIterator ort(db_tables_list);
while(ort.hasNext())
{
QString tablename = ort.next().toLocal8Bit();
if(table_name == tablename)
{
flag = true;
}
}
return flag;
}
}
void Sqlservice::MySqlNewCreateTable(QSqlDatabase db,QString tableInformation)
{
if(db.open())
{
QSqlQuery query(db);
QString create_table_str = tableInformation;
query.exec(create_table_str);
}
else
{
qDebug()<<"create table current db not connect";
return;
}
}
void Sqlservice::MySqlDelTable(QSqlDatabase db,QString table_name)
{
if(db.open())
{
QSqlQuery query(db);
QString sql = QString("drop table %1").arg(table_name);
query.exec(sql);
}
else
{
qDebug()<<"deltable current db not connect";
return;
}
}
void Sqlservice::MySqlTableAdd(QSqlDatabase db,QString table_name,QStringList TableHeadnamelist,QStringList Valuelist)
{
qDebug()<<"a";
if(db.open())
{
qDebug()<<"b";
QSqlQuery m_query(db);
QStringList tempstrlist = DynamiSplicStr(TableHeadnamelist,Valuelist);
qDebug()<<"c";
if(tempstrlist.size() == 2)
{
QString addsqlstr = QString("insert into %1(%2) values(%3)").arg(table_name).arg(tempstrlist.at(0)).arg(tempstrlist.at(1));
qDebug()<<addsqlstr;
m_query.exec(addsqlstr);
qDebug()<<"d";
qDebug()<<table_name<<"insert data format sucess!";
}
else
{
qDebug()<<"insert data format error!";
return;
}
}
else
{
qDebug()<<"insertdata current db not connect";
return;
}
}
void Sqlservice::MySqlTableDel(QSqlDatabase db, QString table_name, QString id)
{
if(db.open())
{
QSqlQuery m_query(db);
QString delsqlstr = QString("delete from %1 where id = '%2'").arg(table_name).arg(id);
m_query.exec(delsqlstr);
}
else
{
qDebug()<<"del tabledata current db not connect";
return;
}
}
void Sqlservice::MySqlTableChange(QSqlDatabase db, QString table_name, QString titlename, QString value, QString id)
{
if(db.open())
{
QSqlQuery m_query(db);
QString updatesqlstr = QString("update %1 set %2='%3' where id='%4'").arg(table_name).arg(titlename).arg(value).arg(id);
m_query.exec(updatesqlstr);
}
else
{
qDebug()<<"change table data current db not connect";
return;
}
}
QSqlQuery Sqlservice::MySqlTableVisit(QSqlDatabase db,QString table_name)
{
if(db.open())
{
QString str;
str=QString("select * from %1").arg(table_name);
QSqlQuery m_query(db);
m_query.exec(str);//表中全部字段
return m_query;
// while(m_query.next())
// {
// qDebug()<<m_query.value(0).toInt();
// }
}
else
{
qDebug()<<"visit tabledata current db not connect";
QSqlQuery m_query;
m_query.clear();
return m_query;
}
}
QStringList Sqlservice::DynamiSplicStr(QStringList TableHeadnamelist,QStringList Valuelist)
{
qDebug() <<"111";
if(TableHeadnamelist.size() == Valuelist.size())
{
QStringList list;
QString head_str = "",value_str = "";
QString head_temp_Str = "",value_temp_str;
for(int i=0;i<TableHeadnamelist.size();i++)
{
if(i == TableHeadnamelist.size()-1)
{
head_temp_Str = TableHeadnamelist.at(i);
value_temp_str = QString("'") + Valuelist.at(i) + QString("'");
}
else
{
head_temp_Str = TableHeadnamelist.at(i) + QString(",");
value_temp_str = QString("'") + Valuelist.at(i) + QString("'") + QString(",");
}
head_str = head_str + head_temp_Str;
value_str = value_str + value_temp_str;
}
list << head_str << value_str;
return list;
}
}
06-05
163
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-14
2463
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-02
8966
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-26
2389
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
01-29
335
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-07
923
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交