qt登錄界面數據庫mysql的簡單介紹

本文目錄一覽:

qt5.3怎麼連接mysql數據庫?

你必須把安裝好的mysql的

C:\Program Files\MySQL\MySQL Server 5.6\lib 下的

libmysql.dll 和 libmysql.lib 拷貝進 qt的G:\Qt\Qt5.3.1\5.3\mingw482_32\bin下

qt中怎麼連接mysql數據庫

1: windows 下登陸mysql 命令行,(1)進入cmd (2) cd mysql 安裝路徑/mysqlserver5.6/bin (3) 使用命令mysql -u root -p 然後根據提示輸入密碼 進入命令行 select user(); //顯示當前用戶 2: 在同一台電腦上利用Qt 訪問數據庫 (1)顯示當前電腦上安裝的數據庫驅動 QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() “/t” driver; (2)QSqlDatabase db=QSqlDatabase::addDatabase(“QMYSQL”);/對 QMYSQL進行操作,本函數 有第二個參數 連接名 db.setHostName(“localhost”);//或127.0.0.1 本主機 db.setPort(3306); db.setDatabaseName(“example”); //對數據庫example進行操作 db.setUserName(“wangxuetao”); //wangxuetao是一個對example數據庫有操作權限的賬戶 db.setPassword(“3791948”); 於是mysql中增加一個賬戶可使用 Grant all previliges on *.* to ‘wangxuetao’@’localhost’ identified by ‘3791948’ with grant option; Flush privileges; //更新 (3)db.open() 函數可由於檢測數據庫是否連接成功 coutDBConnection(); 2. m_sqlquery = new QSqlQuery(“”,m_sqldb);//statement 1:connect db with sql query 3. if(result == R_OK) 4. { 5. result = m_sqlquery-exec(“INSERT INTO children(fname,age) VALUES(‘A nn2’,13)”); 6. if(!result) 7. qDebug()” [OK] “”EXEC successed”; 8. m_sqlquery-exec(“SELECT * FROM children c LIMIT 0,1000”); 9. while(m_sqlquery-next()) 10. { 11. qDebug()value(0).toString()value(1). toString(); 12. } 13. }

QT怎麼ssh連接mysql數據庫

在這裡小編使用的是SQLyogEnt進行遠程連接配置了SSH的數據庫。通過桌面的SQLyogEnt運行數據庫客戶端。

在界面中點擊【新建】按鈕,在Mysql下填寫Mysql數據庫的ip地址、用戶名、密碼、端口(默認在3306)就好,數據庫名稱。這裡跟普通的連接數據庫的方法一致。

這個時候讀者可以點擊一下【測試連接】,這個時候點擊測試連接去連接數據庫是不會成功的,因為數據庫配置了SSH訪問。如下圖:

配置完成Mysql信息後,在旁邊選擇【SSH】

QT訪問MYSQL數據庫為什麼一打開子窗口訪問數據庫就出問題

意思是說,還有某查詢引用默認數據庫連接”qt_sql_default_connection”。

如果忽略該警告,Qt官方文檔里也寫了,可能會出現內存泄漏:

Warning: There should be no open queries on the database connection when this function is called,

otherwise a resource leak will occur.

還是不出現這個警告的好。怎麼把它弄沒了呢?我把一切外圍的對象都排除了:僅建立一個連接,打開它,然後關閉連接,調用removeDatabase()。居然還有警告!問題已經鎖定在我關閉連接的語句上:

QSqlDatabase::removeDatabase(QSqlDatabase::database().connectionName());

默認連接的名字也是默認的,需要通過connectionName()函數獲得。這樣寫貌似沒什麼問題,後來調試發現,QSqlDatabase::database()靜態函數實際上使默認連接的引用計數+1。上述句子相當於:

QSqlDatabase db = QSqlDatabase::database();//獲得實例。

QString name = db.connectionName();//獲得默認連接名。

QSqlDatabase::removeDatabase(name);//刪除默認連接。

這樣,問題就清晰了,db獲得了一個引用,此時引用計數為2。在調用removeDatabase()時,db對象並沒有被刪除,默認連接的引用計數仍為2,於是報告警告信息。

我們只需將其改為:

QString name;

{

name = QSqlDatabase::database().connectionName();

}//超出作用域,隱含對象QSqlDatabase::database()被刪除。

QSqlDatabase::removeDatabase(name);

問題就解決了!

如果直接打默認連接名的話,代碼就簡單多了,不過名字不太好打(再說了,萬一Qt把默認連接名改了呢!):

QSqlDatabase::removeDatabase(“qt_sql_default_connection”);//不推薦。

QT中怎樣連接MYsql數據庫,遠程連接數據庫等

1: windows 下登陸mysql 命令行,(1)進入cmd (2) cd mysql 安裝路徑/mysqlserver5.6/bin

(3) 使用命令mysql -u root -p 然後根據提示輸入密碼 進入命令行

select user(); //顯示當前用戶

2: 在同一台電腦上利用Qt 訪問數據庫

(1)顯示當前電腦上安裝的數據庫驅動

QStringList drivers = QSqlDatabase::drivers();

foreach(QString driver, drivers)

qDebug() “/t” driver;

(2)QSqlDatabase db=QSqlDatabase::addDatabase(“QMYSQL”);/對 QMYSQL進行操作,本函數

有第二個參數 連接名

db.setHostName(“localhost”);//或127.0.0.1 本主機

db.setPort(3306);

db.setDatabaseName(“example”); //對數據庫example進行操作

db.setUserName(“wangxuetao”); //wangxuetao是一個對example數據庫有操作權限的賬戶

db.setPassword(“3791948”);

於是mysql中增加一個賬戶可使用

Grant all previliges on *.* to ‘wangxuetao’@’localhost’ identified by

‘3791948’ with grant option;

Flush privileges; //更新

(3)db.open() 函數可由於檢測數據庫是否連接成功

coutDBConnection();

2. m_sqlquery = new QSqlQuery(“”,m_sqldb);//statement 1:connect db with sql

query

3. if(result == R_OK)

4. {

5. result = m_sqlquery-exec(“INSERT INTO children(fname,age) VALUES(‘A

nn2′,13)”);

6. if(!result)

7. qDebug()” [OK] “”EXEC successed”;

8. m_sqlquery-exec(“SELECT * FROM children c LIMIT 0,1000”);

9. while(m_sqlquery-next())

10. {

11. qDebug()value(0).toString()value(1).

toString();

12. }

13. }

QT登陸驗證(連接mysql)

QSqlQuery query;

query.prepare(tr(“select id,password form student where id=:id;”));

query.bindValue(“:id”,id);

query.exec();

if(query.next()){

QString password = query.value(1).toString();

if(password == passwd)return true;

}

return false;

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/235532.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 11:51
下一篇 2024-12-12 11:55

相關推薦

  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • 如何使用Python將print輸出到界面?

    在Python中,print是最常用的調試技巧之一。在編寫代碼時,您可能需要在屏幕上輸出一些值、字符串或結果,以便您可以更好地理解並調試代碼。因此,在Python中將print輸出…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28

發表回復

登錄後才能評論