應(yīng)用delphi編程實現(xiàn)excel數(shù)據(jù)導(dǎo)入和導(dǎo)入技術(shù)_第1頁
應(yīng)用delphi編程實現(xiàn)excel數(shù)據(jù)導(dǎo)入和導(dǎo)入技術(shù)_第2頁
應(yīng)用delphi編程實現(xiàn)excel數(shù)據(jù)導(dǎo)入和導(dǎo)入技術(shù)_第3頁
應(yīng)用delphi編程實現(xiàn)excel數(shù)據(jù)導(dǎo)入和導(dǎo)入技術(shù)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

應(yīng)用delphi編程實現(xiàn)excel數(shù)據(jù)導(dǎo)入和導(dǎo)入技術(shù)

1解決sql東北部數(shù)據(jù)庫所存在的問題的計算方法辦公自動化信息數(shù)據(jù)庫用戶通常會發(fā)現(xiàn)需要將數(shù)據(jù)存儲在excel數(shù)據(jù)庫中的數(shù)據(jù)輸入到sqlserver數(shù)據(jù)庫,然后將數(shù)據(jù)輸入到sqlserver數(shù)據(jù)庫中的數(shù)據(jù)。不同的編程語言有不同的解決方法。本文介紹應(yīng)用Delphi編程來實現(xiàn)Excel數(shù)據(jù)表到SQLServer數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入導(dǎo)出技術(shù)。2基于ale的應(yīng)用程序監(jiān)控OLE自動化是Windows應(yīng)用程序操縱另一個程序的一種機制。被操縱的一方稱為自動化服務(wù)器,操縱自動化服務(wù)器的一方稱為自動化控制器。通過引用這些對象實現(xiàn)對自動化服務(wù)器的調(diào)用,然后通過設(shè)置對象的屬性和使用對象的方法操縱自動化服務(wù)器,實現(xiàn)兩者之間的通訊。Delphi在數(shù)據(jù)庫方面提供的強大又富有彈性的能力給廣大編程人員帶來了方便。dbExpress是Delphi下一代的數(shù)據(jù)訪問技術(shù)。提供高效率數(shù)據(jù)訪問以及提供跨平臺能力的數(shù)據(jù)訪問引擎。dbExpress包含了7個組件,它們是TSQLConnection、TSQLDataSet、TSQLQuery、TSQLStoredProc、TSQLTable、TSQLMonitor和TSimpleDataSet,這些組件的功能就是讓應(yīng)用程序連接后端數(shù)據(jù)庫,訪問數(shù)據(jù)表中的數(shù)據(jù),把修改的數(shù)據(jù)更新回數(shù)據(jù)庫中以及讓程序員觀察dbExpress向后端數(shù)據(jù)庫下達(dá)命令等。Delphi完全支持OLE應(yīng)用程序自動化,提供的Servers欄控件可以很容易開發(fā)OLE自動化控制器實現(xiàn)對OLE自動化服務(wù)器的調(diào)用。在Delphi內(nèi)部運行OLE自動化程序需要在Uses語句中加入Comobj來開始自動化程序。通過調(diào)用CreateOleObject來檢索一個自動化對象,CreateOleObject調(diào)用大量系統(tǒng)內(nèi)部的OLE函數(shù),創(chuàng)建一個Idispatch的實例,并從Variant中返回一個Delphi變量類型,可以根據(jù)不同的環(huán)境提供不同的功能,這里我們使用Variant來引用Excel內(nèi)部的對象以建立Delphi與Excel之間的連接。并采用dbExpress建立Delphi和SQLServer之間的連接,來實現(xiàn)Excel數(shù)據(jù)表到SQLServer數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入和導(dǎo)出。3有利于實現(xiàn)數(shù)據(jù)庫的訪問dbExpress通過TSQLConnection組件同SQLServer數(shù)據(jù)庫進(jìn)行連接。雙擊TSQLConnection,就會彈出它的組件編輯器,在這個組件編輯器里,我們就可以定義連接數(shù)據(jù)庫的類型,數(shù)據(jù)庫名稱,登陸帳號、密碼等信息。以下就是我們連接名為DBSERVER的數(shù)據(jù)庫服務(wù)器的具體情況:DriverName=MSSQL//數(shù)據(jù)庫類型HostName=DBSERVER//數(shù)據(jù)庫服務(wù)器Database=ETEST//數(shù)據(jù)庫名User_Name=sa//登陸帳號Password=sa//登陸密碼BlobSize=-1LocaleCode=0000MSSQLTranslsolation=ReadCommitedOSAuthentication=False在連接上數(shù)據(jù)庫以后,dbExpress提供了兩種方法:一是使用TSimpleDataSet組件;二是使用TSQLDataSet搭配TDataSetProvider和TClientDataSet組件來對數(shù)據(jù)庫進(jìn)行訪問。在實現(xiàn)簡單數(shù)據(jù)訪問操作中,這兩種方法在功能上幾乎是一模一樣的,但是在有高性能要求的應(yīng)用中,就需要使用第二種方法來實現(xiàn)對數(shù)據(jù)庫的訪問。本文只涉及簡單的數(shù)據(jù)訪問功能,所以采用第一種方法來實現(xiàn)對數(shù)據(jù)庫的訪問操作。定義待訪問的數(shù)據(jù)表名為‘CSBY’,則具體的操作步驟如下:(1)在Form中放置TSQLConnection組件,按照連接數(shù)據(jù)庫的方法建立與SQLServer數(shù)據(jù)庫的連接,設(shè)置該組件的Connected屬性為True以打開連接,LoginPrompt屬性為False以避免每次連接數(shù)據(jù)庫時都出現(xiàn)登陸框,設(shè)置Name屬性為SQLConnection1。(2)在Form中放置TSimpleDataSet組件,設(shè)置該組件的Connection屬性為SQLConnection1,DataSet.CommandText為‘select*fromCSBY’,設(shè)置Name屬性為SimpleDataSet1。(3)在Form中放置TDataSource組件,設(shè)置該組件的DataSet屬性為SimpleDataSet1,設(shè)置Name屬性為DataSource1。(4)在Form中放置TDBGrid組件,設(shè)置該組件的DataSource屬性為DataSource1,設(shè)置Name屬性為DBGrid1,表CSBY中的數(shù)據(jù)將顯示在TDBGrid組件中。4數(shù)據(jù)導(dǎo)入功能的數(shù)據(jù)導(dǎo)入導(dǎo)出技術(shù)的應(yīng)用:在襄十高速公路車輛查詢系統(tǒng)中,有很多由Excel數(shù)據(jù)表存儲的數(shù)據(jù)資料需要導(dǎo)入到SQLServer數(shù)據(jù)庫中,例如《載貨類汽車質(zhì)量參數(shù)調(diào)整更正表》就需要導(dǎo)入到SQLServer數(shù)據(jù)庫中以便用來查詢。如果由人工錄入,工作量太大。解決的方法有兩種,一是利用SQLServer企業(yè)管理器的導(dǎo)入導(dǎo)出向?qū)Чδ苤苯訉xcel數(shù)據(jù)表中的數(shù)據(jù)導(dǎo)入到SQLServer數(shù)據(jù)庫中,但是這樣數(shù)據(jù)庫將暴露在普通用戶面前,一旦用戶誤操作,就會造成很大的損失。二是在襄十高速公路車輛查詢系統(tǒng)中實現(xiàn)數(shù)據(jù)導(dǎo)入的功能,這樣可以避免數(shù)據(jù)庫直接面向普通用戶。這里采用方法二來實現(xiàn)數(shù)據(jù)導(dǎo)入功能。襄十高速公路車輛查詢系統(tǒng)查詢出來的結(jié)果需要導(dǎo)出到Excel數(shù)據(jù)表中,以報表的形式向上提交。這就需要在襄十高速公路車輛查詢系統(tǒng)中實現(xiàn)能夠?qū)QLServer數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到Excel數(shù)據(jù)表中的功能。能夠?qū)崿F(xiàn)這個功能的方法很多,本文采用預(yù)先設(shè)置好Excel模板,然后再將數(shù)據(jù)導(dǎo)入到模板中的方法。這種方法靈活、方便,可以制作較復(fù)雜的Excel數(shù)據(jù)表,創(chuàng)建Excel對象的過程是在后臺運行,避免用戶在自動化運行期間干預(yù)Excel,而出現(xiàn)誤操作。主要代碼的實現(xiàn):4.1創(chuàng)建什么工作薄在前面的Form中添加ExcelApplication、ExcelWorkbook和ExcelWorksheet三個控件。然后打開Excel應(yīng)用程序,創(chuàng)建一個工作薄,如果打開工作薄失敗,就斷開與Excel的連接,然后關(guān)閉Excel應(yīng)用程序。源程序如下:4.2ts條件調(diào)整數(shù)據(jù)庫事務(wù)取出Excel數(shù)據(jù)表的每一行信息插入到已建好的,名為“CSBY”的SQLServer數(shù)據(jù)表中。為了保護(hù)數(shù)據(jù)的完整性,利用TSQLConnection的StartTransaction方法激活一個獨立的數(shù)據(jù)庫事務(wù),以確保在SQLServer數(shù)據(jù)表更新出現(xiàn)錯誤的時候,能夠調(diào)用TSQLConnection的Rollback方法將SQLServer數(shù)據(jù)表恢復(fù)到進(jìn)行更新操作之前的狀態(tài)。源程序如下:4.3在excel數(shù)據(jù)表中,來自sqlsrv數(shù)據(jù)庫中的數(shù)據(jù)輸入到excel數(shù)據(jù)表向預(yù)設(shè)的Excel模板中寫入數(shù)據(jù),就是利用ExcelWorksheet的Cells屬性添加數(shù)值的過程。源程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論