2016-10-30 66 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'。 –