DBEXPRESS控件赋值报错

zhangpuqing 2008-03-03 11:18:55
最近在写个工程,在至有这么几个东西,主窗口MAIN,数据模块MODULE,登陆界面DL,当MAIN,SHOW的时候,调用MODULE里ACTION里的动作用DL:=TDL.CREATE(SELF);DL.SHOWMODULE
现在我在登陆界面里想给MODULE里的SQLQUERY.SQL写语句,但执行时会报错,但如果把语句先写在控件里就没事,大家帮我想想是哪儿出错了.
...全文
95 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangpuqing 2008-04-30
  • 打赏
  • 举报
回复
发现问题了,是数据库连接设置的问题
zhangpuqing 2008-03-04
  • 打赏
  • 举报
回复
楼上,
你好,我已重新检查了我的工程文件代码,还是没有发现问题,创建顺序也是先数据再MAINFROM的.
我怀疑是不是PASSWD的创建有问题
PASSWD我是在DATAMODULE里创建的,
用的是
PASSWD:=TPASSWD.CREATE(SELF);
PASSWD.SHOWMODULE;
然后在MAINFROM里ONSHOW的时候再显示PASSWD的.
SELF可能有问题.
boneheart 2008-03-04
  • 打赏
  • 举报
回复
这个问题应该是对象生成期问题。你在操作数据模块对象时,其实数据模块对象还没有生成,所以报错了。

编写这种数据库应用时,我的步骤是这样:首先保证application对象里的全局对象生成顺序,先数据模块,再主窗口。然后logopassword窗口在主窗口的create事件中调用。

列如:

application对象是:

begin
Application.Initialize;
Application.CreateForm(TWeaponData, WeaponData); //数据模块对象
Application.CreateForm(TMainForm, MainForm); //主窗口对象
try
Application.Run;
except
Application.Terminate;
end;
end.



而主窗口create事件:
procedure TMainForm.FormCreate(Sender: TObject);
begin
passwd := TPasswordDlg.Create(Application);
passwd.ShowModal();
passwd.Free;
end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧