我有一個在項目之間共享的SQLConnection,如果它從一個ini文件中讀取配置,是否有一些方法可以在設計時加載相同的配置?有沒有辦法在設計時從ini文件中加載TSQLConnection參數?
1
A
回答
3
一種方法是編寫您自己的TSQLConnection後代。
0
我假設你正在使用德爾福2009年或2010年。你可以參考我的博客文章第一:http://chee-yang.blogspot.com/2008/09/delphi-2009-using-dbx4-framework.html
我跟蹤這個問題相當長的一段時間。文章中提出了很多QC報告。一些已經在德爾福2010年解決。請先看看,我們可能會在後期討論。
3
你必須爲它創建自己的自定義組件,我們稱之爲TCustomSQLConnection。只需將這個組件放在表單或數據模塊上,將一個名爲ConfigurationFile的自定義屬性設置到您的ini文件中,然後您就可以開始使用了。如果我理解正確,這就是你想要的 - 如果不是我的appologies。
請看看下面的代碼,
unit uSQLCustomConnection; interface uses SysUtils, Classes, DB, SqlExpr; type TCustomSQLConnection = class(TSQLConnection) private FConfigurationFile : String; procedure SetConfigurationFile(Value: TStrings); procedure LoadConfiguration(AConfigurationFile: String); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property ConfigurationFile : String read FConfigurationFile write SetConfigurationFile; end; procedure Register; implementation constructor TCustomSQLConnection.Create(AOwner: TComponent); begin inherited; FConfigurationFile := ''; end; destructor TCustomSQLConnection.Destroy; begin // free memory if needed inherited; end; procedure TCustomSQLConnection.SetConfigurationFile(Value: String); begin FConfigurationFile := Value; if FileExists(FConfigurationFile) then LoadConfiguration(FConfigurationFile); end; procedure TCustomSQLConnection.LoadConfiguration(AConfigurationFile: String); begin // Put the code that loads the configuration here end; procedure Register; begin RegisterComponents('Samples', [TCustomSQLConnection]); end; end.
所有你需要做的就是將自己的代碼加載配置後安裝該組件,你是好去。
我會把這個組件放在一個數據模塊上,以及一些在項目之間共享的其他組件。
希望它有幫助。
相關問題
- 1. 有沒有辦法從流中加載Crystal Report 9.0文件?
- 2. 有沒有辦法在設計的登錄功能中通過超時參數?
- 3. 有沒有辦法在Perl中加載配置文件?
- 4. 有沒有辦法在Python中重新加載「當前」文件?
- 5. 有沒有辦法在java中加載gz文件?
- 6. 有沒有辦法從卸載程序文件中禁用autouninstaller?
- 7. 有沒有辦法在PHP PDO中設置一個參數?
- 8. 有沒有辦法讓JavaScript文件在AIR中加載另一個文件?
- 9. 有沒有辦法從變量設置模板參數?
- 10. 有沒有辦法在javaFX中加載Eclipse RCP插件?
- 11. 有沒有辦法在運行時將類文件加載到程序集?
- 12. 有沒有辦法從iOS中的plist中加載const unsigned char?
- 13. 有沒有辦法加載關於分辨率的CSS文件?
- 14. 有沒有辦法讓Winforms控件的屬性在設計時有不同的表現(在VS設計器中)?
- 15. 有沒有辦法不加載jQuery?
- 16. 有沒有辦法在python中重載+ =?
- 17. 有沒有辦法在運行時加載類jar和包?
- 18. 有沒有辦法在Apache中預加載代碼在PHP中?
- 19. 有沒有辦法從.java文件中獲取.class文件
- 20. 有沒有辦法從AliasMatch中免除文件/文件夾?
- 21. 有沒有辦法省略掉參數?
- 22. 有沒有辦法在Silverlight中沒有Webclient的情況下下載文件?
- 23. 有沒有辦法從內存文件處理程序加載圖標?
- 24. 有沒有辦法從XMLHttpRequest響應中獲取參數?
- 25. 有沒有辦法從make調用中獲取-j參數?
- 26. 有沒有辦法從ActionScript中檢查循環參數的值?
- 27. 有沒有辦法從庫中讀取命令行參數?
- 28. django manage.py - 有沒有辦法從環境中獲取--settings參數?
- 29. 有沒有辦法從組件中繼承.config文件中的設置?
- 30. 有沒有辦法將大文本文件逐行加載到kdb中?
我想你不明白我的問題。我想在設計時加載設置,我可以在設計時連接到數據庫的唯一方法是通過在dfm中配置連接,但我不想這樣做。 – 2009-10-30 11:50:33