網(wǎng)站制作難點(diǎn)故事式的軟文廣告例子
目錄
- 虛谷數(shù)據(jù)庫
- 簡介
- 測試虛谷數(shù)據(jù)庫
- 虛谷數(shù)據(jù)庫中系統(tǒng)表
- win7搭建OBDC數(shù)據(jù)源
- Qt連接數(shù)據(jù)庫
- 通過QSqlDatabase的QODBC連接虛谷數(shù)據(jù)庫
- 查詢修改虛谷數(shù)據(jù)庫中數(shù)據(jù)
- 測試案例
- 補(bǔ)充-使用sqlDriverConnect 直接連接虛古數(shù)據(jù)庫
虛谷數(shù)據(jù)庫
簡介
虛谷數(shù)據(jù)庫管理系統(tǒng)是一款大型、高性能、高安全、高可靠和完全自主知識產(chǎn)權(quán)的系統(tǒng)軟件,是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)系統(tǒng)管理軟件,是三大系統(tǒng)軟件:操作系統(tǒng)、中間件和數(shù)據(jù)庫之一,為應(yīng)用軟件的運(yùn)行提供數(shù)據(jù)存儲(chǔ)和管理功能,主解決信息數(shù)據(jù)的高效存貯、安全管理與快速檢索等問題,主要功能包括數(shù)據(jù)字典、內(nèi)存管理、事務(wù)管理、語法分析器、集成管理工具集等,提供數(shù)據(jù)定義、數(shù)據(jù)操作功能、數(shù)據(jù)庫的運(yùn)行管理、數(shù)據(jù)庫的建立和維護(hù)功能
詳細(xì)說明建議閱讀: 國產(chǎn)數(shù)據(jù)庫虛谷數(shù)據(jù)庫管理系統(tǒng)(虛谷DBMS)介紹
測試虛谷數(shù)據(jù)庫
到這篇隨筆記錄為止,使用的虛谷數(shù)據(jù)庫是11.0版本的,通過虛谷數(shù)據(jù)交流群中下載文件如下圖示:
測試時(shí)雙擊 startup.bat 開啟服務(wù)器,最開始我還以為直接執(zhí)行exe,點(diǎn)了半天沒反應(yīng),還是在群里咨詢了一下才發(fā)現(xiàn);
虛谷數(shù)據(jù)的使用文檔也比較完善,需要的內(nèi)容說明基本都有,包括常見的數(shù)據(jù)庫的創(chuàng)建,表,浮標(biāo)這些
文件中自帶客戶端程序可以查看當(dāng)前服務(wù)器中的數(shù)據(jù)庫
除了不能縮放窗體這點(diǎn),使用起來還是挺方便的。
虛谷數(shù)據(jù)庫中系統(tǒng)表
在測試數(shù)據(jù)庫的時(shí)候,為了獲取當(dāng)前數(shù)據(jù)庫的表列表,就找到幾個(gè)相關(guān)表,
//select * from sys_tables; //只在SYSTEM數(shù)據(jù)庫中有效,其他數(shù)據(jù)庫中無權(quán)限
//select * from sys_databases;//只在SYSTEM數(shù)據(jù)庫中有效,其他數(shù)據(jù)庫中無權(quán)限
//select * from all_tables; //當(dāng)前數(shù)據(jù)庫所有表
//SELECT * from user_tables; //當(dāng)前數(shù)據(jù)庫有權(quán)限的表
//select * from dba_tables;//當(dāng)前數(shù)據(jù)庫所有表
win7搭建OBDC數(shù)據(jù)源
打開控制面板->管理工具->數(shù)據(jù)源ODBC
安裝虛谷數(shù)據(jù)庫的ODBC源需要在虛谷數(shù)據(jù)庫客戶端工具中找到xuguodbc_install.exe進(jìn)行安裝
然后在系統(tǒng)DSN里面添加XuguSQL 7.01
安照指定格式填寫內(nèi)容,并測試連接成功!
Qt連接數(shù)據(jù)庫
通過QSqlDatabase的QODBC連接虛谷數(shù)據(jù)庫
qt通過QSqlDatabase的QODBC連接虛谷數(shù)據(jù)庫時(shí),對數(shù)據(jù)的連接方式主要還是需要注意DSN的內(nèi)容,其他的操作基本和操作其他數(shù)據(jù)庫類似,部分示例:
void Init(ConnetS cont,QString connention="QSQLITE_CINNENTION_DataSQl"){QSqlDatabase soft_DataBase=QSqlDatabase::database(connention);soft_DataBase = QSqlDatabase::addDatabase("QODBC",connention);soft_DataBase.setHostName(cont.Host);//地址soft_DataBase.setPort(cont.Port);//端口soft_DataBase.setDatabaseName(QString("DSN=%1;DRIVER=%2; DATABASE=%3;UID=%4;PWD=%5;").arg(cont.DSN) //之前設(shè)置的OBDC數(shù)據(jù)源的名稱.arg(cont.DRIVER) //默認(rèn)值.arg(cont.DATABASE) //數(shù)據(jù)庫名稱.arg(cont.UID) //用戶名.arg(cont.PWD) //用戶密碼);if (!soft_DataBase.open()) {emit Send_messages("連接失敗:---不能打開軟件數(shù)據(jù)庫連接; " + soft_DataBase.lastError().driverText(),100000);}}
查詢修改虛谷數(shù)據(jù)庫中數(shù)據(jù)
對數(shù)據(jù)的增刪改查基本與操作其他的數(shù)據(jù)庫方式內(nèi)飾,相當(dāng)于只要設(shè)置好了ODBC,修改連接語句后,對數(shù)據(jù)的修改大同小異,部分示例:
//通過sql 語句查詢數(shù)據(jù)
QSqlQuery DataSQl::SelectOrUpdateBy(QString sql)
{QSqlQuery query(soft_DataBase);if(soft_DataBase.open()){if(query.exec(sql)){return query;}elseemit Send_messages("query.lastError: "+query.lastError().text(),100000);soft_DataBase.close();}return query;
}/// 修改數(shù)據(jù)
/// \brief DataSQl::updateTable
/// \param 表名
/// \param 修改字段名稱
/// \param 修改字段值
/// \param id 唯一標(biāo)示
/// \param id值
/// \return
///
int DataSQl::updateTable(QString Table,QString fieid,QString value,QString id,QString idvalue)
{if (!soft_DataBase.open()) {emit Send_messages("---不能打開項(xiàng)目數(shù)據(jù)庫連接: " + soft_DataBase.lastError().driverText(),5000);return -1;}QSqlQuery query(soft_DataBase);QString sql=QString("Update %1 set %2=:fieid where %3=:ids").arg(Table).arg(fieid).arg(id);query.prepare(sql);query.bindValue(":fieid",value);query.bindValue(":ids",idvalue);bool bol=query.exec();if(!bol){emit Send_messages("---修改失敗: " + query.lastError().driverText(),5000);return -1;}elsereturn 1;
}
測試案例
這是在windows系統(tǒng)下的使用qt開發(fā)調(diào)用的測試案例,下載鏈接已下線,尼瑪,其他系統(tǒng)環(huán)境的安裝使用虛谷數(shù)據(jù)庫去看官網(wǎng)!!!舉報(bào)尼瑪,
案例中包括直接sql查詢,修改等,以及對當(dāng)前登錄賬戶的權(quán)限表數(shù)據(jù)進(jìn)行修改,切換插入數(shù)據(jù),右鍵刪除數(shù)據(jù)等功能,
案例exe執(zhí)行程序可直接運(yùn)行,下載路徑:鏈接: xugushujuku20210516.rar
如果需要源碼請直接下載:鏈接: xugushujuku.rar
補(bǔ)充-使用sqlDriverConnect 直接連接虛古數(shù)據(jù)庫
QSqlDatabase* db =new QSqlDatabase(QSqlDatabase::addDatabase("QODBC","QODBC_TEXTMODEL"));
QString _Connect=QString("DRIVER={XuguSQL 7.01}; DB=TEXTDB;UID=USR_BEJN_TEXT;PWD=123456!;server=127.1.1.1; PORT=5138;charset=GBK;timezone=GMT+08:00;");
qDebug()<<_Connect;
db->setDatabaseName(_Connect);
bool ok = db->open();if (ok){if(ismess)QMessageBox::information(this, "提示", "成功連接!");db->close();}else {qDebug()<<""<<db->lastError().text();QMessageBox::warning(this, "提示", "連接失敗!"+db->lastError().text());}db->close();delete db;db = NULL;QSqlDatabase::removeDatabase("QODBC_TEXTMODEL");
可直接修改參數(shù)連接虛古數(shù)據(jù),無需配置ODBC,其中XuguSQL 7.01為驅(qū)動(dòng)版本;