版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上IFIX連接SQL讀寫數(shù)據(jù)和制作excel報(bào)表圖文教程IFIX連接SQL數(shù)據(jù)庫(kù)、制作excel報(bào)表詳細(xì)教程 一、 IFIX連接SQL數(shù)據(jù)庫(kù)讀寫數(shù)據(jù) IFIX連接SQL數(shù)據(jù)庫(kù)有多種方法,其中最為方便的兩種方法是: (1)使用IFIX本身為SQL數(shù)據(jù)庫(kù)提供的接口SQT和SQD; (2)VB+ADO。 下面分別介紹著兩種方法的實(shí)現(xiàn)步驟。 1、使用SQT和SQD讀寫SQL數(shù)據(jù)庫(kù) 1.1 安裝SQL2008 (只列出關(guān)鍵步驟,其余直接點(diǎn)擊“下一步”或“安裝”) 打開(kāi)SQL安裝中心,點(diǎn)擊“安裝”; SQL2008簡(jiǎn)體中文版安裝包下載鏈接: 點(diǎn)擊“全新SQL Server獨(dú)立安裝或
2、向現(xiàn)有安裝添加功能”; 點(diǎn)擊“輸入產(chǎn)品密匙”,點(diǎn)擊“下一步”:(根據(jù)版本選擇) sql server2008密鑰 Developer: PTTFM-X467G-P7RH2-3Q6CG-4DMYB Enterprise: JD8Y6-HQG69-P9H84-XDTPG-34MBB Microsoft SQL Server 2008 R2序列號(hào)密鑰 開(kāi)發(fā)版32位:MC46H-JQR3C-2JRHY-XYRKY-QWPVM 開(kāi)發(fā)版64位:FTMGC-B2J97-PJ4QG-V84YB-MTXX8 工組版:XQ4CB-VK9P3-4WYYH-4HQX3-K2R6Q WEB版:FP4P7-YKG22-W
3、GRVK-MKGMX-V9MTM 數(shù)據(jù)中心版32位:PTTFM-X467G-P7RH2-3Q6CG-4DMYB 數(shù)據(jù)中心版64位:DDT3B-8W62X-P9JD6-8MX7M-HWK38 企業(yè)版32位:R88PF-GMCFT-KM2KR-4R7GB-43K4B 企業(yè)版64位:GYF3T-H2V88-GRPPH-HWRJP-QRTYB 標(biāo)準(zhǔn)版32位:CXTFT-74V4Y-9D48T-2DMFW-TX7CY 標(biāo)準(zhǔn)版64位:B68Q6-KK2R7-89WGB-6Q9KR-QHFDW 功能選擇界面,選擇安裝全部功能,點(diǎn)擊“下一步”; 進(jìn)入實(shí)例配置界面,選擇默認(rèn)實(shí)例,點(diǎn)擊“下一步”; 進(jìn)入服務(wù)器配置
4、界面,啟動(dòng)類型均選為“自動(dòng)”;點(diǎn)擊“對(duì)所有SQL Server服務(wù)使用相同的賬戶”,在彈出的界面中選擇第一個(gè)賬戶,密碼不用填;返回服務(wù)器配置界面點(diǎn)擊下一步; 進(jìn)入數(shù)據(jù)庫(kù)引擎配置界面,選擇混合模式,輸入自己設(shè)定的密碼,點(diǎn)擊“添加當(dāng)前用戶”,點(diǎn)擊下一步,直至安裝完成,關(guān)閉安裝中心。 1.2 進(jìn)入SQL server新建SQL登錄名和數(shù)據(jù)庫(kù) 打開(kāi)SQL,以Windows身份驗(yàn)證登錄; 連接完后,點(diǎn)擊“安全性”-“登錄名”,右擊選擇“新建登錄名”: 在彈出的界面中,點(diǎn)擊左上角的“常規(guī)” ,輸入登錄名、密碼,不要勾選強(qiáng)制密碼過(guò)期,之后點(diǎn) 擊左上角“服務(wù)器角色”; 在彈出的界面中,根據(jù)需要勾選所需權(quán)限,這
5、里全部勾選,再點(diǎn)擊“用戶映射”; 在彈出的界面中,“映射到此登錄名的用戶”內(nèi)勾選所有數(shù)據(jù)庫(kù),并在每個(gè)數(shù)據(jù)庫(kù)的“數(shù)據(jù)庫(kù)角色成員身份”中勾選db_owner和public,而后點(diǎn)擊“確定”,完成新建登錄名。 完成登錄名創(chuàng)建后,斷開(kāi)當(dāng)前連接或是退出SQL重新進(jìn)入軟件,以SQL身份驗(yàn)證登錄,輸入剛剛新建的登錄名,點(diǎn)擊“連接”; 連接后,右擊“數(shù)據(jù)庫(kù)”,選擇“新建數(shù)據(jù)庫(kù)”,以默認(rèn)配置完成新建,如這里新建數(shù)據(jù)庫(kù),取名為db1。 進(jìn)入db1,新建三張表,新建右擊“表”,選擇“新建表”,輸入如下圖的列名及數(shù)據(jù)類型;點(diǎn)擊保存,輸入表名為sqllib,用于保存SQL命令; 新建第二張表,列名及數(shù)據(jù)類型如下圖,取名
6、為sqlerr,用于保存各類錯(cuò)誤: 新建第三張表,用于保存需要的工業(yè)歷史數(shù)據(jù),這里將表取名為data,添加兩個(gè)列COL1和COL2,數(shù)據(jù)類型都為float。 接下來(lái)為sqllib表添加SQL命令,這里添加一條向data表的COL1、COL2寫入數(shù)據(jù)的語(yǔ)句,右擊“abo.sqllib”,選擇“編輯前200行”;寫入如下圖的內(nèi)容,點(diǎn)擊保存。 注:如果要讀取數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù),只要將該SQL命令換成相應(yīng)的select語(yǔ)句。 1.3 創(chuàng)建ODBC數(shù)據(jù)源 打開(kāi)控制面板,依次點(diǎn)擊“管理工具”-“數(shù)據(jù)源(ODBC)”,進(jìn)入如下界面: 在點(diǎn)擊“系統(tǒng)DSN”-點(diǎn)擊“添加”按鈕,在如下界面中選擇“SQL Server
7、”,點(diǎn)擊“完成”。 在以下界面中填寫名稱命名數(shù)據(jù)源,服務(wù)器填寫自己的計(jì)算機(jī)名 (獲取計(jì)算機(jī)名按照如下步驟: 右擊桌面的“計(jì)算機(jī)”-選擇“屬性”,在彈出的界面上就可以看到),點(diǎn)擊“下一步”; 按照下圖配置,填入剛剛在SQL中新建的登陸名和密碼,點(diǎn)擊下一步; 勾選“更改默認(rèn)的數(shù)據(jù)庫(kù)為”,在下拉框中選擇剛剛新建的數(shù)據(jù)庫(kù)名,點(diǎn)擊下一步; 直接點(diǎn)擊“完成”按鈕。 之后你可以在彈出的界面中點(diǎn)擊“測(cè)試數(shù)據(jù)源”,若測(cè)試成功,則可以進(jìn)入下一步驟。 1.4 在SCU內(nèi)配置SQL 打開(kāi)IFIX,點(diǎn)擊“SCU”,進(jìn)入配置界面; 在如下界面中點(diǎn)擊“配置”-選擇“SQL”, 在彈出的界面中點(diǎn)擊“增加”按鈕,填入相應(yīng)信息,
8、點(diǎn)擊“確定”。 選中剛剛添加的SQL賬戶,點(diǎn)擊“配置SQL任務(wù)”; 啟用SQL支持,選擇我們所創(chuàng)建的數(shù)據(jù)庫(kù)ID,點(diǎn)擊“確定”,完成配置。 1.5 在IFIX內(nèi)創(chuàng)建SQT和SQD數(shù)據(jù)塊 打開(kāi)IFIX的數(shù)據(jù)庫(kù)管理器,創(chuàng)建數(shù)字量輸入數(shù)據(jù)塊DI1,當(dāng)DI1的值發(fā)生變化時(shí)就觸發(fā)SQT(當(dāng)然也可以采用時(shí)間事件來(lái)觸發(fā)SQT,下面也會(huì)有介紹),點(diǎn)擊界面內(nèi)的“高級(jí)”標(biāo)簽。 進(jìn)入高級(jí)標(biāo)簽,勾選“啟用輸出”和“手動(dòng)”; 一般要保存到關(guān)系數(shù)據(jù)庫(kù)的歷史數(shù)據(jù)都是模擬量,因此本教程以模擬量為例子,將其存入SQL數(shù)據(jù)庫(kù)。創(chuàng)建模擬量寄存器數(shù)據(jù)塊AR_1和AR_2: 創(chuàng)建數(shù)據(jù)塊SQT,在數(shù)據(jù)庫(kù)管理器中新建數(shù)據(jù)塊,選擇SQT類型,
9、如下圖; 進(jìn)入如下的界面,若要采用DI1數(shù)值變化來(lái)觸發(fā)SQT,則如下圖填寫信息。在剛剛創(chuàng)建的db1數(shù)據(jù)庫(kù)中,我們建立了sqllib表,并在表內(nèi)添加了sqlname為cmd1,sqlcmd為“Insert into data?”這條語(yǔ)句。在如下界面中,SQL名填寫“cmd1”,數(shù)據(jù)庫(kù)ID填寫“db1”(所建ODBC數(shù)據(jù)源名稱),事件標(biāo)簽寫入“DI1.F_CV”,事件類型勾選“值變化”,這樣,當(dāng)DI1的值變化時(shí),SQT就會(huì)觸發(fā),找到db1數(shù)據(jù)庫(kù)下的sqllib表內(nèi)sqlname等于cmd1的這條語(yǔ)句,并執(zhí)行。 在上圖中的“下一塊”中填寫SQD_1,構(gòu)成數(shù)據(jù)鏈,此時(shí)會(huì)彈出如下界面,點(diǎn)擊“yes”;
10、創(chuàng)建SQD數(shù)據(jù)塊,如下圖填寫,因?yàn)槭窍驍?shù)據(jù)庫(kù)添加數(shù)據(jù),所以方向選為OUT。 保存數(shù)據(jù)庫(kù)管理器。這樣,就建立了一個(gè)DI1值變化觸發(fā)的SQT和SQD。 如果我們希望以時(shí)間事件來(lái)觸發(fā)SQT,應(yīng)在建立SQT數(shù)據(jù)塊的時(shí)候,設(shè)置觸發(fā)時(shí)間,其余步驟相同。例如,我們希望每天晚上23:00至23:59這段時(shí)間內(nèi),每5分鐘記錄一次數(shù)據(jù)到SQL數(shù)據(jù)庫(kù),建立SQT數(shù)據(jù)塊時(shí)應(yīng)如下圖填寫: 在IFIX主界面點(diǎn)“應(yīng)用程序”,打開(kāi)“任務(wù)控制”; 驗(yàn)證SQL服務(wù)是否啟動(dòng),如下圖所示說(shuō)明注冊(cè)成功。 作進(jìn)一步驗(yàn)證,在數(shù)據(jù)庫(kù)管理器內(nèi)更改DI1 的當(dāng)前值,如將CLOSE 改為OPEN, 按 Ctrl + R, 觀察到SQT_1 的當(dāng)前
11、值增加1,意味著SQT 被觸發(fā)一次,打開(kāi)SQL也可以發(fā)現(xiàn)data表增加了一行記錄。 以上就是使用SQT和SQD讀寫SQL數(shù)據(jù)庫(kù)的詳細(xì)步驟。 2、使用ADO訪問(wèn)數(shù)據(jù)庫(kù) 2.1 定時(shí)向數(shù)據(jù)庫(kù)添加記錄 首先,參照1.1-1.3的內(nèi)容建立數(shù)據(jù)庫(kù)(只需建立data表,sqllib和sqlerr不需創(chuàng)建),創(chuàng)建ODBC數(shù)據(jù)源。 打開(kāi)IFIX,雙擊下圖左下角的“數(shù)據(jù)定時(shí)寫”,新建基于時(shí)間項(xiàng); 假設(shè)我們要在每晚23:00自動(dòng)存數(shù)據(jù),則如下圖設(shè)置: 點(diǎn)擊“VB編輯器”,寫入如下代碼: 填上代碼后,一定要選擇如下圖這一步:點(diǎn)擊“工具”-“引用”,在下圖界面中,勾上microsoft activex data ob
12、jects 2.1 library,否則會(huì)報(bào)錯(cuò)。 確定后保存。 右鍵點(diǎn)擊FIXTIME8這一條,選擇“調(diào)度程序?qū)傩浴?,在如下畫面中選擇“后臺(tái)運(yùn)行”,點(diǎn)確定; 在后續(xù)彈出的窗口中都選擇“是”,直至完成,fixtimer8激活,時(shí)間一到,程序就會(huì)自動(dòng)添加記錄。 2.2從數(shù)據(jù)庫(kù)讀數(shù)據(jù) 從數(shù)據(jù)庫(kù)讀數(shù)據(jù)一般采用按鈕觸發(fā),可以在ifix里新建一個(gè)畫面,添加一個(gè)按鈕,在按鈕 的腳本里添加代碼,最后記得引用microsoft activex data objects 2.1 library。代碼基本和2.1相同,只是把相應(yīng)的insert命令換成select語(yǔ)句。 二、 IFIX制作excel報(bào)表 1、在建好數(shù)
13、據(jù)庫(kù)和數(shù)據(jù)源(參照1.1-1.3)后,新建一個(gè)ifix畫面,添加一個(gè)ole對(duì)象,選擇“Microsoft Web Browser”,用來(lái)顯示報(bào)表; 2、新建一張excel報(bào)表模板,放到工程目錄的APP文件夾下,如“人工數(shù)據(jù)日?qǐng)?bào)表.xls”; 3、新建一個(gè)按鈕,為其編寫腳本,粘貼如下代碼(覆蓋新建畫面原有的代碼): Option Explicit Dim a As Single 定義中間變量,用來(lái)暫存從數(shù)據(jù)庫(kù)中取出的數(shù)據(jù) Dim b As Single Dim rsADO As ADODB.Recordset 定義連接數(shù)據(jù)庫(kù)的ADO變量 Dim conn As New ADODB.Connect
14、ion Public CmdTruck As New ADODB.Command Public dbUpdata As New ADODB.Command Public rstUpdata As New Recordset Private Sub CommandButton3_Click() 點(diǎn)擊按鈕的響應(yīng)函數(shù) Call showbb 調(diào)用顯示報(bào)表的函數(shù)showbb Call closeDB1 調(diào)用關(guān)閉數(shù)據(jù)庫(kù)的函數(shù)closeDB1 End Sub Private Sub showbb() Dim Rs As New ADODB.Recordset '定義連接數(shù)據(jù)庫(kù)的ADO變量
15、openDB1 打開(kāi)DB1數(shù)據(jù)庫(kù),該函數(shù)在后面有定義 CmdTruck.ActiveConnection = conn CmdTruck.CommandText = "select max(COL1) as COL1,max(COL2) as COL2 from data" 從data表讀取COL1和COL2的最大值 Set Rs = CmdTruck.Execute 執(zhí)行SQL語(yǔ)句 a = 0 b = 0 If Not (Rs.BOF Or Rs.EOF) Then 將讀出來(lái)的數(shù)據(jù)傳給中間變量a、b If (Rs!col1) Then a = Rs!col1 b = Rs
16、!col2 End If End If Dim xlApp As Object '定義報(bào)表對(duì)象 Dim xlBook As Object Dim xlSheet As Object On Error GoTo errorhandle Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Open(System.ProjectPath & "app人工數(shù)據(jù)日?qǐng)?bào)表.xls") 打開(kāi)報(bào)表模板 Set xlSheet = xlBook.Worksheets(1) xlApp.Di
17、splayAlerts = False '警告禁用 xlApp.Visible = False 'EXCEL隱藏 xlSheet.Cells(10, 4) = a & "" 將中間變量的值寫到對(duì)應(yīng)excel的單元格 xlSheet.Cells(11, 4) = b & "" xlSheet.SaveAs System.ProjectPath & "app人工數(shù)據(jù)日?qǐng)?bào)表.htm", FileFormat:=xlHtml '工作表另存為 xlA
18、pp.DisplayAlerts = True '警告使能 xlApp.Quit Me.WebBrowser1.Navigate System.ProjectPath & "app人工數(shù)據(jù)日?qǐng)?bào)表.htm" 在WebBrowser控件上顯示報(bào)表 xlApp.Quit Set xlSheet = Nothing '釋放內(nèi)存 Set xlBook = Nothing Set xlApp = Nothing Set CmdTruck = Nothing Set Rs = Nothing Exit Sub errorhandle: MsgBox "報(bào)表生成錯(cuò)誤", vbOKOnly + vbInformation, "信息."
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 購(gòu)物中心消防安全方案優(yōu)化
- 2024年吊頂裝飾工程協(xié)議書(shū)
- (2024版)新材料研發(fā)合作協(xié)議
- 住宅外墻保溫施工技術(shù)方案
- 2024年住房購(gòu)買協(xié)議
- 2024年城市供水管網(wǎng)改造與維護(hù)合同
- 2024年人工智能項(xiàng)目合作開(kāi)發(fā)協(xié)議
- 2024年儀器設(shè)備購(gòu)買與安裝合同
- 在線學(xué)習(xí)平臺(tái)小數(shù)加減法課程方案
- 智慧城市建設(shè)監(jiān)理服務(wù)方案
- 2024年-不同場(chǎng)合版化糞池清掏協(xié)議書(shū)
- 售后服務(wù)中的案例分析與解決方案
- 頜面部間隙感染護(hù)理常規(guī)
- 部編八年級(jí)上冊(cè)語(yǔ)文《散文二篇》課件
- 科普現(xiàn)狀及科普工作思考問(wèn)題
- 庫(kù)存管理的有效預(yù)警機(jī)制
- 四年級(jí)上冊(cè)英語(yǔ)滬教牛津版Module2測(cè)試題
- 溫氏蛋雞管理手冊(cè)
- 高中數(shù)學(xué)《6.2 排列與組合》課件與導(dǎo)學(xué)案
- 餐廳財(cái)務(wù)分析報(bào)告
- 工廠異常分析報(bào)告
評(píng)論
0/150
提交評(píng)論