git-svn-id: svn://192.168.0.12/source@16 8346c931-da38-4b9b-9d4c-e48b93cbd075

This commit is contained in:
admin
2015-02-03 08:03:16 +00:00
parent 78b2c14a74
commit f7bac9ae57
2 changed files with 181 additions and 35 deletions

View File

@@ -251,10 +251,11 @@ void Widget::on_insert()
list.append(m_pleCycle->text());
InsertLog("Run (" + list.at(2) + "," + list.at(4) + ") -> (" + list.at(6) + "," + list.at(7) +")" );
InsertLog("Data Get ..." );
m_mainData.clear();
m_body_data.clear();
m_reply_data.clear();
DataGet(list);
InsertLog("Data Filter ..." );
DataFilter(list);
//DataFilter(list);
InsertLog("Data Put ..." );
DataPut(list);
InsertLog("Finish");
@@ -324,7 +325,8 @@ void Widget::FilterProcssRefresh()
QString Widget::SqlString(QString _str)
{
_str.replace("\\","\\\\");
_str.replace("'","");
_str.replace("'","\\'");
_str.replace("\"","\\\"");
_str.replace(",","\\,");
return _str;
}
@@ -391,35 +393,69 @@ void Widget::DataGet(QStringList _list)
QString strSelect;
strSelect = "select ";
strSelect += "CONVERT(body_articleid USING utf8),";
strSelect += "CONVERT(body_nickname USING utf8),";
strSelect += "CONVERT(body_date USING utf8),";
strSelect += "CONVERT(body_articletitle USING utf8),";
strSelect += "CONVERT(body_data USING utf8),";
strSelect += "CONVERT(body_platformid USING utf8),";
strSelect += "CONVERT(body_platformtitle USING utf8),";
strSelect += "CONVERT(url USING utf8),";
strSelect += "CONVERT(reply_nickname USING utf8),";
strSelect += "CONVERT(reply_parent USING utf8),";
strSelect += "CONVERT(reply_date USING utf8),";
strSelect += "CONVERT(reply_data USING utf8),";
strSelect += "CONVERT(reply_urlreply USING utf8),";
strSelect += "CONVERT(keyword_id USING utf8),";
strSelect += "CONVERT(platformname USING utf8),";
strSelect += "CONVERT(platformform USING utf8),";
strSelect += "CONVERT(articleform USING utf8),";
strSelect += "CONVERT(reply_rownum USING utf8)";
strSelect += "CONVERT(platform_name USING utf8),"; //0
strSelect += "CONVERT(platform_form USING utf8),"; //1
strSelect += "CONVERT(platform_title USING utf8),"; //2
strSelect += "CONVERT(article_id USING utf8),"; //3
strSelect += "CONVERT(article_nickname USING utf8),"; //4
strSelect += "CONVERT(article_title USING utf8),"; //5
strSelect += "CONVERT(article_data USING utf8),"; //6
strSelect += "CONVERT(article_url USING utf8),"; //7
strSelect += "CONVERT(article_hit USING utf8),"; //8
strSelect += "CONVERT(article_date USING utf8)"; //9
//strSelect += "CONVERT(platform_id USING utf8)"; //10
strSelect += " from ";
strSelect += "data_" + _list.at(1);
strSelect += " Order by body_date";
strSelect += " where ";
strSelect += " article_form = 'body'";
strSelect += " Order by article_date";
//qDebug() << strSelect;
if(query.exec(strSelect) == false) { InsertLog(query.lastError().text());return;}
while(query.next())
{
QStringList strList;
for(int i = 0; i < 18; i++)
if (query.value(3).toString().isEmpty()) continue;
for(int i = 0; i < 10; i++)
strList << " " + query.value(i).toString() + " ";
m_mainData.append(strList);
m_body_data.append(strList);
}
int i=0;
foreach(QStringList strList,m_body_data)
{
strSelect = "select ";
strSelect += "CONVERT(article_id USING utf8),"; //0
strSelect += "CONVERT(article_nickname USING utf8),"; //1
strSelect += "CONVERT(article_parent USING utf8),"; //2
strSelect += "CONVERT(article_data USING utf8),"; //3
strSelect += "CONVERT(article_date USING utf8)"; //4
strSelect += " from ";
strSelect += "data_" + _list.at(1);
strSelect += " where ";
strSelect += " article_form = 'reply' and";
strSelect += " article_url = '";
strSelect += strList.at(7).trimmed();
strSelect += "' Order by article_order";
if(query.exec(strSelect) == false) {
InsertLog(query.lastError().text());return;}
int nStart = m_reply_data.size() + 1;
int nEnd = nStart;
while(query.next())
{
QStringList strList;
for(int i = 0; i < 5; i++)
strList << " " + query.value(i).toString() + " ";
m_reply_data.append(strList);
nEnd++;
}
if (nStart == nEnd)
nStart = nEnd = -1;
else
nEnd--;
m_body_data[i].push_back(QString::number(nStart));
m_body_data[i++].push_back(QString::number(nEnd));
}
db.close();
}
@@ -435,7 +471,7 @@ void Widget::FilterDate(int _nCategory,QDate _dateStart,QDate _dateEnd)
}
QVector <QStringList> copyData;
foreach(QStringList strList , m_mainData)
foreach(QStringList strList , m_body_data)
{
bool bFlag = false;
QString strTime = strList.at(nColumn).trimmed();
@@ -450,8 +486,8 @@ void Widget::FilterDate(int _nCategory,QDate _dateStart,QDate _dateEnd)
if (bFlag)
copyData.push_back(strList);
}
m_mainData.clear();
m_mainData = copyData;
m_body_data.clear();
m_body_data = copyData;
}
void Widget::FilterSeracher(int _nCatalog,int _nMethod , int _nKeyword , QString _strSearch)
@@ -464,7 +500,7 @@ void Widget::FilterSeracher(int _nCatalog,int _nMethod , int _nKeyword , QString
}
QVector <QStringList> copyData;
foreach(QStringList strList , m_mainData)
foreach(QStringList strList , m_body_data)
{
bool bFlag = false;
QString strData = strList.at(_nCatalog);
@@ -502,8 +538,8 @@ void Widget::FilterSeracher(int _nCatalog,int _nMethod , int _nKeyword , QString
}
if (bFlag) copyData.push_back(strList);
}
m_mainData.clear();
m_mainData = copyData;
m_body_data.clear();
m_body_data = copyData;
}
void Widget::DataFilter(QStringList _list)
@@ -522,7 +558,6 @@ void Widget::DataFilter(QStringList _list)
if(query.exec(sql) == false) { InsertLog(query.lastError().text());return;}
while (query.next())
{
QString str;
switch(query.value(1).toInt())
{
case 0://Date
@@ -549,7 +584,115 @@ void Widget::DataPut(QStringList _list)
}
QSqlQuery query;
QString strQuery;
strQuery = "DROP TABLE body_" + _list.at(5) + QString("_0000");
if(query.exec(strQuery.toUtf8()) == false) /*{*/InsertLog(query.lastError().text());//return;}
strQuery = "DROP TABLE reply_" + _list.at(5) + QString("_0000");
if(query.exec(strQuery.toUtf8()) == false) /*{*/InsertLog(query.lastError().text());//return;}
strQuery = "CREATE TABLE body_" + _list.at(5) + QString("_0000 (");
strQuery += "num INT NOT NULL auto_increment primary key,"
"platform_name CHAR(64),"
"platform_form CHAR(64),"
"platform_title VARCHAR(256),"
"category_num INT,"
"id CHAR(128),"
"nickname VARCHAR(256),"
"title VARCHAR(1024),"
"data MEDIUMTEXT,"
"url CHAR(255),"
"hit INT,"
"date DATETIME,"
"reply_startnum INT,"
"reply_endnum INT,"
"isreal BOOLEAN,"
"bodyisreal BOOLEAN,"
"replyisreal BOOLEAN)DEFAULT CHARACTER SET = 'utf8' ENGINE=InnoDB;";
if(query.exec(strQuery.toUtf8()) == false)/*{*/InsertLog(query.lastError().text());//return;}
strQuery = "CREATE TABLE reply_" + _list.at(5) + QString("_0000 (");
strQuery += "num INT NOT NULL auto_increment primary key,"
"id CHAR(128),"
"nickname VARCHAR(256),"
"parent VARCHAR(256),"
"data MEDIUMTEXT,"
"date DATETIME,"
"isreal BOOLEAN,"
"body_num INT)DEFAULT CHARACTER SET = 'utf8' ENGINE=InnoDB;";
if(query.exec(strQuery.toUtf8()) == false)/*{*/InsertLog(query.lastError().text());//return;}
query.prepare("INSERT INTO body_" + _list.at(5) + QString("_0000 (") + "platform_name,"
"platform_form,"
"platform_title,"
"category_num,"
"id,"
"nickname,"
"title,"
"data,"
"url,"
"hit,"
"date,"
"reply_startnum,"
"reply_endnum,"
"isreal,"
"bodyisreal,"
"replyisreal"
") value ("
":platform_name,"
":platform_form,"
":platform_title,"
":category_num,"
":id,"
":nickname,"
":title,"
":data,"
":url,"
":hit,"
":date,"
":reply_startnum,"
":reply_endnum,"
":isreal,"
":bodyisreal,"
":replyisreal)");
foreach(QStringList strList,m_body_data)
{
query.bindValue(":platform_name",strList.at(0));
query.bindValue(":platform_form",strList.at(1));
query.bindValue(":platform_title",SqlString(strList.at(2)).toUtf8());
query.bindValue(":id",strList.at(3));
query.bindValue(":nickname",SqlString(strList.at(4)).toUtf8());
query.bindValue(":title",SqlString(strList.at(5)).toUtf8());
query.bindValue(":data",SqlString(strList.at(6)).toUtf8());
query.bindValue(":url",strList.at(7));
query.bindValue(":hit",strList.at(8));
query.bindValue(":date",strList.at(9));
query.bindValue(":reply_startnum",strList.at(10));
query.bindValue(":reply_endnum",strList.at(11));
query.bindValue(":isreal",true);
query.bindValue(":bodyisreal",false);
query.bindValue(":replyisreal",false);
if(query.exec() == false)
InsertLog(query.lastError().text());
}
query.prepare("INSERT INTO reply_" + _list.at(5) + QString("_0000 (") + QString("id,nickname,parent,data,date)"
" value "
"(:id,:nickname,:parent,:data,:date)"));
foreach(QStringList strList,m_reply_data)
{
query.bindValue(":id",strList.at(0));
query.bindValue(":nickname",SqlString(strList.at(1)));
query.bindValue(":parent",SqlString(strList.at(2)));
query.bindValue(":data",SqlString(strList.at(3)));
query.bindValue(":date",strList.at(4));
if(query.exec() == false)
InsertLog(query.lastError().text());
}
/*
QSqlQuery query;
QString strDelete = "delete from data where company_name = '" + _list.at(6) + "' AND category_name = '" + _list.at(7) + "'";
if(query.exec(strDelete.toUtf8()) == false) {
InsertLog(query.lastError().text());
@@ -561,7 +704,7 @@ void Widget::DataPut(QStringList _list)
"article_num , article_rownum , article_form , article_title , article_url , article_id , article_nickname , "
"article_date , article_body , article_reply ) value (";
foreach(QStringList strList , m_mainData)
foreach(QStringList strList , m_body_data)
{
for (int i = 0; i < strList.size(); i++)
strList[i] = strList[i].trimmed();
@@ -590,6 +733,7 @@ void Widget::DataPut(QStringList _list)
if(query.exec(strQuery) == false){ InsertLog(query.lastError().text());return;}
}
*/
db.close();
}
@@ -657,3 +801,4 @@ void Widget::Update()
}
}
*/

View File

@@ -34,13 +34,14 @@ private:
QProgressBar *m_pProg;
QTimer m_timer;
int m_nMode;
QVector <QStringList> m_data;
QVector <QStringList> m_body_data;
QVector <QStringList> m_reply_data;
//SGetThread *m_pThread;
//SPutThread *m_pPutThread;
QSqlDatabase db;
void InsertLog(QString str);
void FilterProcssRefresh();
QVector <QStringList> m_mainData;
//QVector <QStringList> m_mainData;
void DataGet(QStringList _list);
void DataFilter(QStringList _list);
void DataPut(QStringList _list);