2016-10-30 116 views
1
uses dmInfo; 

{$R *.dfm} 

procedure TForm3.Button1Click(Sender: TObject); 

begin 

with dmInfo do 

begin 

tblInfo.Open; 

end; 

由於某些不清楚的原因,tblInfo被視爲未聲明的標識符。請幫忙。未識別的未聲明標識符數據庫表

感謝

+2

看到你明顯同意你給datamodule命名爲「DataModule」之類的東西,很明顯真正的問題在於你如何命名事物。您似乎有錯誤的方式命名優先級:首先,您應該給重要的**對象**一個有意義的名稱,dmInfo而不是DataModule,然後根據對象的名稱選擇單位的名稱,系統後綴(如dmInfou)或前綴。如果你有這種習慣,你會避免造成這種問題的那種滑倒。另外,避免像瘟疫一樣「帶」。 – MartynA

回答

4

編譯器解決不了什麼tblInfo'是因爲你沒有組隊參加了。它不是直接在單元'dmInfo'範圍內,但很可能屬於'dmInfo'中的數據模塊。所以說,如果你的數據模塊的名稱爲「DataModule的」,你會寫

with dmInfo.DataModule do 

begin 

tblInfo.Open; 

可以省略單位名稱,如果這樣做不會引起任何歧義。

with DataModule do 

更好的是,現在開始避免with並且避免出現可能的模糊問題。

DataModule.tblInfo.Open; 
+3

不錯,趕上+1,但遺憾的是錯過了這個機會,指出這是「帶」的問題讓人們溜進去。 – MartynA

+0

@Martyn - 至少這段代碼沒有編譯。 謝謝! –

+0

雖然我不認爲問題與'與'直接相關。海報仍然可以嘗試將表格限定爲'dmInfo.tblInfo'。 –