當前位置:首頁 » 數據倉庫 » qt的資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

qt的資料庫

發布時間: 2022-01-21 13:01:17

1. Qt的資料庫

query對象未與db綁定 -- 在哪執行啊?

2. 如何用Qt連接資料庫並導入文件

可以使用QT自帶的資料庫完成操作,以下是參考代碼:

QsqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //添加資料庫

db.setDatabaseName("note.db"); //創建一個note.db的文件存儲數據

db.open(); //開啟資料庫
query = QSqlQuery(db); //獲得訪問資料庫的query
query.exec(XXX); //執行指令(XXX為SQL指令)
db.close(); //關閉資料庫

一般而言會將db變數作為全局變數或者數據成員,當需要訪問的時候就獲取一個query就可以了。

要實現所提到的功能,要好好看看QString、QStringList,這兩玩意主要是臨時存放數據、分割數據等作用,另外,要看QFile、QDir、QFileInfo、QTextStream,這四個主要用來讀取文本數據。看看QVector或者QList等來存放讀出來的數據。

另外,要實現這玩意,SQL的語句不要求精通,但是基本的Create、Insert、Select、Delete等操作要准確無誤。否則出錯了QT是看不出來的。QT不會檢測SQL的准確性的。

3. QT中資料庫問題

1.query內封裝了sql語句,調用sql語句操作資料庫第一步先構建QSqlQuery。
2.str 是一條sql語句,意思是查找list表中num=%1的所有行,%1的值由num賦予。
3.query.exec執行了str這條sql語句。此時如果sql語句沒問題,query中已經保存了查詢結果。
4.query.next意思是如果查詢結果中有下一條(默認從第0條開始),返回true 否則返回false.
是人都應該懂了

4. 怎麼在QT的類中打開一個資料庫,讓所有的對象都能夠使用

定義一個QTcpSocket對象被實例化在了前面,它是使用線路傳遞到每個窗體的指針。 QObject的類及其子類不能被復制,常常使用指針,以便用啊。

5. 查看Qt支持哪些資料庫

Qt默認是支持QSQLITE資料庫的

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setHostName("acidalia"); db.setDatabaseName("customdb"); db.setUserName("mojito"); db.setPassword("J0a1m8"); bool ok = db.open();

6. qt的資料庫實現是怎樣的

完整的代碼給你了:

data.h
#define DB_SALES_DRIVER "QMYSQL3"
#define DB_SALES_DBNAME "CAAS"
#define DB_SALES_USER "root"
#define DB_SALES_PASSWD ""
#define DB_SALES_HOST ""

main.cpp

#include <qapplication.h>
#include <qsqldatabase.h>
#include <qsqlquery.h>
#include <qsqlcursor.h>
#include <qtextedit.h>
#include <qstring.h>
#include <qtextcodec.h>
#include <qvbox.h>
#include "data.h"
#include <stdio.h>
#include <qpushbutton.h>

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" ); // 指定表/視圖名稱
cur.select(); // 我們將檢索每一條記錄
while ( cur.next() )
{
qDebug( cur.value( "ID" ).toString() + ": " +
cur.value( "Name" ).toString() + " " +
cur.value( "Age" ).toString() );
Lzw.append(cur.value( "ID" ).toString() + ": " +
cur.value( "Name" ).toString() + " " +
cur.value( "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);
app.setMainWidget(mybox);
mybox->show();
return app.exec();
}

7. qt怎樣創建資料庫以及資料庫的操作

QT創建和插入的操作代碼如下:
bool database::createDatabase()
{
QSqlQuery query; // 此處請查詢 query的相關操作
qDebug() << "Start to create table...";
//create table: User
query.exec("CREATE TABLE [User] ( [userId] VARCHAR(40) NOT NULL, [username] VARCHAR(40) NOT NULL, [email] VARCHAR(40), [password] VARCHAR(40), [city] VARCHAR(20), PRIMARY KEY([userId]) )"); // 一定注意不要拼寫錯誤,引號內是不提示拼寫錯誤的。
//create table: Connect
query.exec("CREATE TABLE [Connect] ( [LeftUser] VARCHAR(40) NOT NULL, [RightUser] VARCHAR(40) NOT NULL, [relation] INTEGER DEFAULT '0' NULL, PRIMARY KEY ([LeftUser], [RightUser]))");
if (query.lastError().isValid())
{
qDebug() << query.lastError();
return false;
}
else
{
qDebug() << "Create database successfully.";
}
return true;
}
插入操作

bool database::adser( User user )
{
if (!db.isOpen())
{
createconnection();
}
QSqlQuery query;
qDebug() << "start to insert data";
query.exec("INSERT INTO [User] ( userId, username, email, password, city) VALUES(?,?,?,?,?)");
QVariantList userId;
userId << user.getUserId();
query.addBindValue(userId);
QVariantList username;
username << user.getUserName();
query.addBindValue(username);
QVariantList email;
email << user.getEmail();
query.addBindValue(email);
QVariantList password;
password << user.getPassword();
query.addBindValue(password);
QVariantList city;
city << user.getCity();
query.addBindValue(city);
try
{
if (!query.execBatch())
{
qDebug() << query.lastQuery();
qDebug() << query.lastError();
return NULL;
}
}
catch(...)
{
QMessageBox::critical(0, "Add New Node error!",
"Unable to add a new Node!/n/n"
"Click Cancel to exit.", QMessageBox::Cancel);
}
if( !UpdateConnectTable(user.getUserId(),user.getUserId(),2))
{
QMessageBox::critical(0,"","Update table Connect error");
return NULL;
}
return true;
}

8. 用qt庫做設計用mysql資料庫好還是用sqlserver好

都很強大,具體選用哪個跟你用資料庫的需求以及使用環境等有關。如果你的編程環境是微軟windows伺服器,使用微軟系的編程語言,比如C#、VB等,那麼sql server肯定是首選;如果你對資料庫的企業化要求非常高,比如非常完善的日誌管理、sql代碼優化等,oracle這方面做的不錯;如果你是用php等來做輕量級網站編程,mysql則是非常好的搭檔,php自帶的mysqli工具包對操作mysql來說非常方便。

另外,從好學不好學這個角度來說的話,想入門都很好學,想精通都得下一番功夫!

9. qt creator怎麼查詢資料庫內容

qt creator怎麼查詢資料庫內容:
U-boot中有一個用來保存很多有用信息的全局結構體 --gd_t(global data縮寫),其中包括了bd變數,可以說gd_t結構體包括了u-boot中所有重要全局變數。最後傳遞給內核的參數,都是從gd和bd中來的,如上 述的setup_memory_tags函數的作用就是用bd中的值來初始化RAM相應的tag。
對於ARM平台這個結構體的定義大致如下:
include/asm-arm/global_data.h
typedef struct global_data {
bd_t *bd;
unsigned long flags;
unsigned long baudrate;
unsigned long have_console; /* serial_init() was called */
unsigned long reloc_off; /* Relocation Offset */
unsigned long env_addr; /* Address of Environment struct */
unsigned long env_valid; /* Checksum of Environment valid? */
unsigned long fb_base; /* base address of frame buffer */
void **jt; /* jump table */
} gd_t;

在U-boot中使用gd結構之前要用先用宏DECLARE_GLOBAL_DATA_PTR來聲明。這個宏的定義如下:
include/asm-arm/global_data.h
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")
從這個宏的定義可以看出,gd是一個保存在ARM的r8寄存器中的gd_t結構體的指針。

說明:本文的版本為U-boot-1.3.4、Linux-2.6.28,平台是ARM。

10. QT資料庫

網上下載「精通QT4編程.pdf」或「QT4從入門到精通.pdf」,裡面有較詳細的說明