datah
#define DB_SALES_DRIVER "QMYSQL3"
#define DB_SALES_DBNAME "CAAS"
#define DB_SALES_USER "root"
#define DB_SALES_PASSWD ""
#define DB_SALES_HOST ""
maincpp
#include <qapplicationh>
#include <qsqldatabaseh>
#include <qsqlqueryh>
#include <qsqlcursorh>
#include <qtextedith>
#include <qstringh>
#include <qtextcodech>
#include <qvboxh>
#include "datah"
#include <stdioh>
#include <qpushbuttonh>
class MyQVBox : public QVBox
{
public:
MyQVBox( QWidget parent=0, const char name=0 );
//public slots:
// refValue(QSrting lzw);
};
MyQVBox::MyQVBox( QWidget parent, const char name )
: QVBox( parent, name )
{
QString Lzw("\n");
QSqlDatabase defaultDB = QSqlDatabase::addDatabase(DB_SALES_DRIVER);
if ( defaultDB )
{
defaultDB->setDatabaseName( DB_SALES_DBNAME );
defaultDB->setUserName( DB_SALES_USER );
defaultDB->setPassword( DB_SALES_PASSWD );
defaultDB->setHostName( DB_SALES_HOST );
if ( defaultDB->open() )
{
//插入数据
QSqlQuery query("INSERT INTO test(ID,Name,Age) VALUES(1155, 'Ginger', 125);" );
//提取数据
QSqlCursor cur( "test" ); // 指定表/视图名称
curselect(); // 我们将检索每一条记录
while ( curnext() )
{
qDebug( curvalue( "ID" )toString() + ": " +
curvalue( "Name" )toString() + " " +
curvalue( "Age" )toString() );
Lzwappend(curvalue( "ID" )toString() + ": " +
curvalue( "Name" )toString() + " " +
curvalue( "Age" )toString()+"\n");
}
//qDebug(Lzw);
printf("aaaaaaa");
}
}
QString ustr = (QTextCodec::codecForLocale())->toUnicode(Lzw);
QString sstr = (QTextCodec::codecForLocale())->toUnicode("刷新");
QTextEdit myEdit = new QTextEdit(this,0);
myEdit->setText(ustr);
QPushButton quit = new QPushButton(sstr, this, "quit" );
connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) );
}
int main( int argc, char argv[] )
{
QApplication app( argc, argv );
MyQVBox mybox = new MyQVBox(0,0);
//mybox->setText(ustr);
appsetMainWidget(mybox);
mybox->show();
return appexec();
}
//打开数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
dbsetDatabaseName("nmrdb");
if (!dbopen())
{
QMessageBox::critical(0, qApp->tr("Cannot open database"),
qApp->tr("Unable to establish a database connection\n"
"This example needs SQLite support Please read "
"the Qt SQL driver documentation for information how "
"to build it\n\n"
"Click Cancel to exit"), QMessageBox::Cancel);
return false;
}
//建个QListView显示数据库中的表
//显示数据表
void MainWindow::listDb()
{
dbListModel =new QStringListModel();
dbListModel->setStringList(QSqlDatabase::database()tables());
ui->listView->setModel(dbListModel);
ui->listView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->listView->setResizeMode(QListView::Adjust);
connect(ui->listView,SIGNAL(clicked(QModelIndex)),this,SLOT(showDb(QModelIndex)));
}
//SLOT:数据显示在QTabelView控件中
void MainWindow::showDb(QModelIndex index)
{
dbName=indexdata()toString();
tableViewModel=new QSqlTableModel(this);
tableViewModel->setTable(dbName);
tableViewModel->select();//
ui->dbTable->setSortingEnabled(true);
ui->dbTable->setModel(tableViewModel);
ui->dbTable->sortByColumn(1,Qt::AscendingOrder);
ui->dbTable->resizeColumnsToContents();
ui->dbTable->setSelectionBehavior(QAbstractItemView::SelectRows);
}
在对数据库执行打开 *** 作的时候,是会产生一个临时文件,实际上是把原来数据库里面的数据提取到临时文件进行 *** 作,关闭数据库的时候再把临时文件里的数据传回去,消除临时文件。如果上一次没有关闭数据库的话,以后实际上是在 *** 作一个空的数据库文件。
所以数据库的 *** 作应该是每次 *** 作前打开, *** 作后关闭,这样是正确的
以上就是关于qt编程中如何为QSqlquery对象指定数据库全部的内容,包括:qt编程中如何为QSqlquery对象指定数据库、Qt Quick中如何打开一个本地数据库、Qt数据库编程如何刷新数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)