1. 程式人生 > >ApolloStudio高手之路(7):用Python輕鬆連線SQLServer/Oracle/MySQL/SQLite/MS Access等關係型資料庫

ApolloStudio高手之路(7):用Python輕鬆連線SQLServer/Oracle/MySQL/SQLite/MS Access等關係型資料庫

關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。現實世界中的各種實體以及實體之間的各種聯絡均用關係模型來表示。關係模型是由埃德加·科德於1970年首先提出的,並配合“科德十二定律”。現如今雖然對此模型有一些批評意見,但它還是資料儲存的傳統標準。標準資料查詢語言SQL就是一種基於關係資料庫的語言,這種語言執行對關係資料庫中資料的檢索和操作。 關係模型由關係資料結構、關係操作集合、關係完整性約束三部分組成。簡單來說,關係型資料庫是由多張能互相聯接的二維行列表格組成的資料庫。

在ApolloStudio中對關係型資料庫的支援分為遠端資料庫和本地資料庫,兩者的區分界定是資料庫本身是否內建伺服器功能來支援遠端網路訪問。 遠端資料庫主要涵蓋的資料庫有:MS SQLServer、Oracle和MySQL這三類為主(其他支援ODBC驅動訪問的資料庫同樣相容),本地資料庫主要支援的是SQLite和MS Access這兩類。在ApolloStudio中,由於遠端資料庫使用的是ODBC技術進行訪問,故在使用前需單獨安裝對應資料庫版本的驅動(由於ApolloStudio主程式限制只能呼叫X86版驅動),安裝過程網上已經有太多對應的教程,在此不作贅述。本地資料庫系統中SQLite內建了訪問驅動而MS Access需在機器上安裝Office套件或者獨立資料引擎AccessDatabaseEngine(百度搜索下或者文末網盤均有提供)。

本文是以本地MySQL 資料庫作為應用案例講解,我們預設機器上已安裝正確版本的ODBC驅動。我們先看下ApolloStudio中所提供的介面:

 

配置資料庫ODBC連線

我們現在工具箱中找到ODBC管理器,自動開啟系統自帶的管理器(系統會自動識別當前使用的是X86還是X64系統並開啟正確的版本) ,在使用者DSN頁面上,我們點選新增:

這裡我們選擇MySQL ODBC 8.0 Unicode Driver(安裝版本不一樣可能版本號有差異,本機裝的是8.0版本驅動):

 填入描述、IP地址、使用者名稱、密碼然後點選Test驗證是否通過,接著選擇對應的資料庫名,這裡本機是mydb(我們事先已配置好該資料庫),儲存即可:

接下來我們回到ApolloStudio中,新增遠端資料庫單元,右鍵點選配置,可以在下拉選單中我們即可找到剛才我們配置的LocalMySQL :

 儲存,這樣我們的連線就配置完成了!

應用案例測試

這裡我們選擇一個簡單例子做測試,我們先在上文中提到的mydb資料庫中放入幾組資料:

我們在ApolloStudio任務列表新增一個介面用來調取和顯示這些資料,並實現CSV檔案匯出,這裡我們使用了一個數據列表控制元件以及三個按鈕控制元件,簡單測試重新整理獲取所有資料,新增資料,以及匯出CSV檔案功能:

 最後編寫指令碼:

#-*- coding: UTF-8 -*-
#載入內嵌模組
import clr,sys,time,datetime

########################################################
#資料庫查詢顯示匯出案例
########################################################

#變數初始化
#插入固定資料資訊到資料庫中
sql_InsertData = "INSERT INTO mydb (姓名,性別,出生日期) VALUES ('王五','男','2018-09-13')"
#獲取資料庫中所有資訊
sql_SelectAllData = "SELECT * FROM mytable"
#定義一個預設DataTable物件
alldata = AS.Func_SQL_ODBC_Select(sql_SelectAllData)

#迴圈函式體
while True:
	if AS.Func_UI_Button_GetValue(0):#新增資訊按鈕被觸發
		AS.Func_UI_Button_SetValue(0, False)#復位按鈕觸發標誌位
		AS.Func_SQL_ODBC_Insert(sql_InsertData)#插入資料
		alldata = AS.Func_SQL_ODBC_Select(sql_SelectAllData)#重新整理所有資料
		AS.Func_UI_DataGridView_SetDataSource("dgv1", alldata)#繫結顯示到UI介面
	if AS.Func_UI_Button_GetValue(1):#重新整理查詢資訊按鈕被觸發
		AS.Func_UI_Button_SetValue(1, False)#復位按鈕觸發標誌位
		alldata = AS.Func_SQL_ODBC_Select(sql_SelectAllData)#重新整理所有資料
		AS.Func_UI_DataGridView_SetDataSource("dgv1", alldata)
	if AS.Func_UI_Button_GetValue(2):#匯出CSV檔案按鈕被觸發
		AS.Func_UI_Button_SetValue(2, False)#復位按鈕觸發標誌位
		AS.Func_CSV_DataTableToCSV(alldata, "D:/test.csv")#儲存在D盤根目錄
	time.sleep(0.2)

在上面的指令碼中我們可以發現,所有的SQL語句直接複製即可獲得所需效果,值得注意的是使用查詢語句後會有一個返回值,其資料型別是DataTable,也就是一張表,後續的操作完全是針對表進行對應操作,點選執行後執行結果:

 

***********************************************************************************************************************************************

ApolloStudio最新版下載地址:

連結:https://pan.baidu.com/s/1UAgivKlM4E9dNT06V9spUw 密碼:a316

歡迎加入Q群:793683827 進行學習交流