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

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論