MySQL提供了多種方法來鎖定解鎖賬號,下麵是幾種常用的方法: 1.使用ALTER語句鎖定賬號 鎖定賬號: ALTER USER 'username'@'localhost' ACCOUNT LOCK; 解鎖賬號: ALTER USER'username'@'localhost' ACCOUNT U ...
-
1 #include <QCoreApplication> 2 #include <QSqlDriver> 3 #include <QSqlDatabase> 4 #include <QSqlQuery> 5 #include <QDebug> 6 #include <QSqlError> 7 int main(int argc, char *argv[]) 8 { 9 QCoreApplication a(argc, argv); 10 QSqlDatabase DB; 11 QString strDB = "D:/Source_Collection/Source_12_11/master_bulid/MainWindow/release/par/MasterDB.db"; 12 13 if(QSqlDatabase::contains("ParaRange")) 14 { 15 DB = QSqlDatabase::database("ParaRange"); 16 } 17 else 18 { 19 DB = QSqlDatabase::addDatabase("SQLITECIPHER","ParaRange"); 20 DB.setDatabaseName(strDB); 21 DB.setPassword("s7T2e5P2s0T0e4p"); 22 } 23 if(!DB.open()) 24 { 25 qDebug()<<"open datebase failed"; 26 qDebug()<<DB.lastError().text();//輸出錯誤信息 27 return {} ; 28 } 29 30 #if 1 //** 占位 */ 31 QString userProvidedAddress = "0x" + QString("c02e").toUpper(); // 這個值是用戶提供的 32 //QString userProvidedAddress = "0xC02E"; 33 // 創建 QSqlQuery 對象 34 QSqlQuery query(DB); 35 36 // 準備 SQL 查詢語句,使用 :address 作為占位符 37 QString sqlQuery = "SELECT PT_Max, PT_Min FROM Range WHERE PT_Address = :address"; 38 query.prepare(sqlQuery); 39 40 // 綁定參數,將用戶提供的地址值綁定到占位符上 41 query.bindValue(":address", QVariant(userProvidedAddress)); 42 // 執行查詢 43 if (query.exec()) { 44 // 處理查詢結果 45 while (query.next()) { 46 double ptMax = query.value("PT_Max").toDouble(); 47 double ptMin = query.value("PT_Min").toDouble(); 48 49 qDebug() << "PT_Max:" << ptMax << "PT_Min:" << ptMin; 50 } 51 } else { 52 // 查詢執行失敗 53 qDebug() << "Query execution failed: " << query.lastError().text(); 54 } 55 #else 56 //* 直接寫sql */ 57 address = QString("0x%1").arg(address.toUpper()); 58 QSqlQuery query("SELECT PT_Max, PT_Min FROM Range WHERE PT_Address = '" + address + "'",DB); 59 while (query.next()){ 60 qDebug() << query.value(0).toDouble() << query.value(1).toDouble(); 61 } 62 #endif 63 64 return a.exec(); 65 }
#include <SqlDriver>
如名稱,資料庫驅動。
1. 驅動信息:
hasFeature
: 檢查驅動是否支持特定功能,如事務、批處理等。isQuerySize
: 驅動是否支持QSqlQuery::size
函數。
2. 資料庫連接:
open
、close
: 打開和關閉資料庫連接。isOpen
: 判斷資料庫連接是否處於打開狀態。commitTransaction
、rollbackTransaction
: 提交和回滾事務。
3. 查詢執行:
exec
: 執行 SQL 查詢。lastError
: 獲取最後一個錯誤。record
: 獲取查詢結果的欄位信息。prepare
、bindValue
: 預處理和綁定參數。
4. 元數據查詢:
record
、tables
、primaryIndex
: 獲取資料庫表的元數據信息。isIdentifierEscaped
、escapeIdentifier
: 判斷和轉義標識符(表名、欄位名)。
5. 事務管理:
hasFeature(QSqlDriver::Transactions)
: 檢查是否支持事務。commitTransaction
、rollbackTransaction
: 提交和回滾事務。
#include <QsqlDataBase>
提供了一個介面,供開發者能夠連接到資料庫,並執行sql查詢以及管理資料庫連接。
1. 資料庫連接:
- 靜態方法
addDatabase
: 用於添加一個資料庫連接。 - 靜態方法
removeDatabase
: 用於移除資料庫連接。
2. 連接屬性:
setHostName
、setDatabaseName
、setUserName
、setPassword
: 用於設置資料庫連接的主機名、資料庫名稱、用戶名和密碼。setPort
: 設置資料庫連接的埠。setConnectOptions
: 設置連接選項,比如設置字元集。
3. 連接狀態:
isOpen
: 判斷資料庫連接是否處於打開狀態。open
、close
: 分別用於打開和關閉資料庫連接。
4. 錯誤處理:
lastError
: 獲取最後一個資料庫錯誤。isValid
: 判斷資料庫連接是否有效。
5. 查詢執行:
exec
: 用於執行 SQL 查詢。transaction
、commit
、rollback
: 用於事務管理。
6. 驅動相關:
driver
: 獲取資料庫連接所使用的驅動。drivers
: 獲取可用的資料庫驅動列表。
7. 信號和槽:
connectionNameChanged
: 當連接名稱改變時發出的信號。commitDataRequest
: 當應用程式請求提交數據時發出的信號。
#include <QSqlQuery
>
Qt 框架中用於執行 SQL 查詢的類,它封裝了資料庫查詢的操作,並提供了一系列方法來處理查詢結果。
QSqlQuery
對象通過 QSqlDatabase
對象創建,它用於執行 SQL 語句並處理查詢結果。
1. 執行 SQL 查詢:
exec
: 執行 SQL 查詢語句。
2. 參數綁定:
bindValue
: 綁定值到 SQL 查詢中的參數。addBindValue
: 添加一個綁定值到 SQL 查詢中。
3. 查詢結果處理:
next
: 移動到查詢結果的下一行。previous
: 移動到查詢結果的上一行。first
、last
: 移動到查詢結果的第一行和最後一行。seek
: 移動到查詢結果的指定行。value
: 獲取當前行指定欄位的值。record
: 獲取查詢結果的欄位信息。
4. 元數據查詢:
record
: 獲取查詢結果的欄位信息。size
: 獲取查詢結果的行數。
5. 事務支持:
isActive
: 判斷查詢是否處於活動狀態(在事務中)。isValid
: 判斷查詢是否有效。
6. 批量操作:
execBatch
: 批量執行一組 SQL 查詢。