加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

QT sqlite3数据库读取、容器操作、文件读写——学习笔记。

发布时间:2020-12-12 20:30:23 所属栏目:百科 来源:网络整理
导读:直接上代码 #include "dbpoi.h"#include QtGui/QApplication#include QtCore/QCoreApplication#include QSqlDatabase#include QSqlQuery#include QSqlError#include QSqlDriver#include qDebug#include QString#include QVector#include QList#include QFile

直接上代码


#include "dbpoi.h"
#include <QtGui/QApplication>
#include <QtCore/QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QSqlDriver>
#include <qDebug>
#include <QString>
#include <QVector>
#include <QList>
#include <QFile>
#include <QSet>


int main(int argc,char *argv[])
{
	QApplication a(argc,argv);
	//dbPOI w;
	
	 //QCoreApplication a(argc,argv);
  //  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
	QVector<int> tempFromNode;
	QVector<int> tempToNode;
	QSet <int> tempSort;

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
    db.setDatabaseName("NEW_AR_POI.sqlite"); // 数据库名与路径,此时是放在同目录下
	// db.setDatabaseName("offset.db"); // 数据库名与路径,此时是放在同目录下
    bool ok = db.open(); // 连接数据库,然后就可以使用了.
	if(ok){
		QSqlQuery query;
	  		if (query.exec("select * from LinkNode_Table_bark "))   //尝试列出  表的所有记录
			{  //本次查询成功
				int numRows = 0;  //询问数据库驱动,是否驱动含有某种特性 
	 
					if (db.driver()->hasFeature(QSqlDriver::QuerySize))
					{
						numRows = query.size();  //如果支持结果影响的行数,那么直接记录下来
					}
					else
					{
						query.last(); //否则定位到结果最后,qt 文档说,这个方法非常慢
						numRows = query.at() + 1;
						query.seek(-1);
					}
			}
							//尝试列出  表的所有记录
			while (query.next()) {

				int num =0;
				/*QString FNode_ID = query.value(4).toString();
				QString TNode_ID = query.value(5).toString();*/
				int FNode_ID = query.value(3).toInt();
				int TNode_ID = query.value(4).toInt();

				tempFromNode.append(FNode_ID);
				tempToNode.append(TNode_ID);				

			}
		}
		else{
		  //qDebug() << "cannot open database.";
			printf( "cannot open database.");
	}
		
		QFile file( "file.txt" );
			if ( file.open(QIODevice::WriteOnly | QIODevice::Text)) {
				QTextStream stream( &file ); 
				for ( int index =0; index < tempFromNode.size(); index ++ ){
					stream << tempFromNode.at(index);
					tempSort.insert(tempFromNode.at(index));
						tempSort.insert(tempToNode.at(index));
					stream<<"t"<< tempToNode.at(index) <<endl ;
									}
				file.close();
			}
		
		//	qSort(tempSort.begin(),tempSort.end());
			//tempSort.unite(tempSort);
QFile filetTempSort( "tempSort.txt" );
			if ( filetTempSort.open(QIODevice::WriteOnly | QIODevice::Text)) {
				QTextStream stream( &filetTempSort ); 
				
						 foreach (const int &value,tempSort)
						 {
							 stream << value<<endl;	 
							 filetTempSort.close();
					}
	
			}

			QFile fileTp( "TP.txt" );
			if ( fileTp.open(QIODevice::WriteOnly | QIODevice::Text)) {
				QTextStream stream( &fileTp); 
				
				 foreach (const int &value,tempSort)
				 {
					 stream << value;

					 for ( int index =0; index < tempFromNode.size(); index ++ ){
						 if (tempFromNode.at(index) == value)  
							 stream << "t"<<tempToNode.at(index);
					 }
					
					for ( int index =0; index < tempFromNode.size(); index ++ ){
						if (tempToNode.at(index) == value)	
							 stream << "t"<<tempFromNode.at(index);
					 }
						 stream << endl;
					}
				
				 fileTp.close();
			}

		//w.show();
		//return a.exec();
		return 0;

}
	

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读