這幾天幫別人寫了一個數(shù)據(jù)庫應用程序,使用的是已經(jīng)非常熟悉的技術,就是Delphi加SQL Server2000來進行搭配,這樣的程序已經(jīng)做了很多,按道理應該輕車熟路的,可是在新的Win7下還是遇到了一些小的問題,經(jīng)過一系列的處理解決了,覺得記錄下來以備后查。
1、Win7下安裝Delphi的問題
問題:在Win7下安裝Delphi,我的還是64位的Win7。運行安裝程序會提示程序不兼容,不能執(zhí)行的情況;還有就是強制兼容安裝了以后運行時報錯的情況。
方法:先右鍵屬性對安裝程序進行兼容性設置,當然選擇XP兼容了;再右鍵以管理員身份執(zhí)行安裝,這時的兼容提示可以不用管它,記得安裝的時候不要安裝在默認目錄,最好分配到系統(tǒng)之外盤符。剩下的就一路正常了??梢园惭b但安裝后執(zhí)行錯誤的情況一般是因為安裝時沒選管理員身份,而且進行默認安裝后有些目錄Delphi沒有權限的關系。
2、Win7下安裝SQL Server的問題
問題:我的64位Win7進行安裝的時候照舊提示兼容性錯誤,無法安裝。
方法:不要直接執(zhí)行安裝autorun.exe進行安裝,可以進目錄x86/setup,執(zhí)行下面的setupsql.exe來進行安裝,安裝前一樣設置兼容性,同時右鍵以管理員身份執(zhí)行,剩下的也就一路正常了。需要說明的是,安裝好之后,默認自帶的服務管理器可能由于權限的原因在我這里無法獲取和控制SQL服務,這個沒啥關系,可以進Win7的管理-服務中對名為 MSSQLSERVER 的服務進行設置,手動自動就隨便你了。
3、Delphi中自帶的Rave報表組件發(fā)布時完全漢化的問題
問題:Delphi中自帶的Rave組件發(fā)布時的漢化是這樣操作的:直接將Delphi7安裝目錄下的Rave5\Lib中的幾個.dfm和.xfm中的字符串漢化,以后編譯出的執(zhí)行程序中的Rave組件的設置、預覽、狀態(tài)信息就變成中文的了,但是你會注意到這幾個窗體的標題仍舊是英文的,沒有完全漢化。
方法:在窗體上放置 RaveSystem 組件,在里面可以設置這三個標題,同時可以控制打印設置中用戶可以選擇的操作。然后將RaveProject組件的system屬性指向這個RaveSystem 組件即可。
4、Delphi7自帶的Rave組件中RvCustomConnection組件的使用。
以前打印報表,從來都是從頭到尾,這次的項目需要一個類似銀行存折中的接著上次的打印以及打印多少條的問題。為了圖方便,就使用了RvCustomConnection組件來自定義數(shù)據(jù),總結一下用法,主要涉及處理4個事件:
OnEof 判斷數(shù)據(jù)是否結束,直接對參數(shù)中的Eof進行設置即可;
OnGetCols 這個是給你建立數(shù)據(jù)字段,在此可以填充指定類型、名稱、寬度等信息的字段,這些字段將在Rave報表中正??梢?。采用RvCustomConnection.WriteField方法;
OnGetRow 這個就是填充具體的數(shù)據(jù)了,采用組件的Write*方法進行具體數(shù)據(jù)的寫入;
OnOpen 這個在報表被打開是調用,可以在此設置報表的參數(shù),或者指定報表數(shù)據(jù)的行數(shù)。
具體報表的設計,編程時讓程序先生成數(shù)據(jù)但是不執(zhí)行報表(execute),之后運行程序產(chǎn)生數(shù)據(jù),然后在Rave設計器中就可以看到數(shù)據(jù)了,和普通的設計一樣。
5、某些精簡版XP在連接SQL Server時報錯誤“不能裝載通訊模塊,驅動程序安裝不正確”的問題。
問題:有的客戶端可以正常使用,有的則報出上述錯誤
方法:通訊模塊不能裝載,一般要么為所需的庫沒有或者版本錯誤或者被其他程序獨占打開,經(jīng)檢查發(fā)現(xiàn)缺少系統(tǒng)文件:C:\WINDOWS\system32\dbnetlib.dll ,從其他機器復制一個過來了事。我估計重裝MDAC組件或者安裝SQL客戶端程序應該也可以解決,不過這個最簡單,夠用就好。
6、撥號上網(wǎng)的電腦提供SQL Server服務對外網(wǎng)可見
問題:撥號上網(wǎng),想對外網(wǎng)可見一般使用動態(tài)域名,可中間再通過一個路由器就跟復雜一點了。ADSL撥號+無線路由器+SQL Server對外網(wǎng)可見的設置問題。
方法:前提要采用支持端口映射和自帶花生殼組件的路由器。
A、設置服務器IP地址自動獲取
B、設置路由中服務器電腦的IP為靜態(tài)分配,給其固定一個IP
C、設置路由器中花生殼賬號讓其連線后自動登錄
D、設置路由器中端口映射,將服務器對外端口和路由器之間的進行映射
E、路由器中再進行一些端口協(xié)議的設置,一般為安全選項,默認一般不用設置即可使用
在客戶端采用花生殼給定的域名進行訪問即可。
7、突破Delphi7自帶的ICO圖標制作工具,自己制作圖標
方法:
A、做好圖標的png格式,帶透明通道
B、采用大小僅為200kb的PNG-to-ICO工具進行轉換即可
不過這鐘方式一個ico文件里面貌似只能保存一個大小的圖標,要想合成可能還是需要更加專業(yè)的軟件了。
另外,僅憑興趣自學編程很多年,也做過很多和自身崗位相關的程序,但為了有更多機會練手,同時學以致用,我新開了個小店接接小程序、定制軟件之類的,歡迎大家支持: