datamodule的小问题:(20分)

  • 主题发起人 主题发起人 lyplay2
  • 开始时间 开始时间
L

lyplay2

Unregistered / Unconfirmed
GUEST, unregistred user!
datamodule中建立了名为datam包含一个ADOConnection1
ADOConnection.ConnectionString:=XXXXXXXXXXXXXXXXXXX;

TFORM1已经USE DATA。。。。。


TFORM1.FormActivate事件中的
adoquery1.connection:=ADOConnection;运行时此句出错
第一次用datamodule,不知这样做对否应该如何设?
 
删掉在来一次有时候就行了
 
哦怎么删,
还是不行呀
 
datamodule中建立了名为datam包含一个ADOConnection1
ADOConnection.ConnectionString:=XXXXXXXXXXXXXXXXXXX;

TFORM1已经USE DATA。。。。。


TFORM1.FormActivate事件中的
adoquery1.connection:=datam.ADOConnection;运行时此句出错(先写错了)
不知那里错了?
 
把adoquery1.connection:=ADOConnection放在Fromshow或formcreate 行吗?
然后在数据模块中有没有用adoconnection1.connected:=True;
试一下。
 
adoquery1.connection:=datam.ADOConnection;
是不是应该是 adoquery1.connection:=datam.ADOConnection1;
因为datamodule中建立了名为datam包含一个ADOConnection1
ADOConnection.ConnectionString:=XXXXXXXXXXXXXXXXXXX;
出错信息是什么,DataModule有顺序问题的,你必须在运行时先创建DataModule
的窗口,点菜单 project/options,看一下Auto-create Forms 框中你的datamodule
的窗体datam是不是在第一个,不是的话,改了在试一下

 
应该是
TFORM1.FormActivate事件中的
adoquery1.connection:=datam.ADOConnection1;
//把ADOConnection改为ADOConnection1
ADOConnection是一个类,不是标示符。
 
datamodule要在form1之前先创建
要不会有内存访问错误....'FFFFFFF'等
因为你访问了一个还没有创建的单元[:D]
 
设个断点来看看,可能是你还没建立conn,就先访问了。
 
多人接受答案了。
 
通通错了,如果还没解决的话,这样做:
在工程文件中把
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TDatamodule, Datamodule);
两条语句的顺序互换一下,原因是在form1.FormActivater的时候,
datamodule1 还没有Application.CreateForm(TDatamodule, Datamodule);
更不用说datamodule1.ADOConnection1了
 
后退
顶部