qt有关数据库mysql服务的源码

#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;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值