我有一个工程,
1)里面有两个窗体 A和B,
2)一个数据模块DM,DM里有一个ADOConnection1,一个ADOQuery1(通过ADOConnection1连接一张表T)
我在A中并未用到DM.ADOQuery1,可是当我在B中用一个新的ADOQuery控件ADOQueryB通过DM.ADOConnection1
连接表T时,却编译不通过,提示“数据异常突起”,我非得把B中的DataSource连接在DM.ADOQuery1上才可以编译执行
我已经在A中用了DM.ADOQuery1.Connection.Close; DM.ADOQuery1.Close; 还是一样的错误!实在百思不得其解!还请各位前辈指点!
谢谢~~
1)里面有两个窗体 A和B,
2)一个数据模块DM,DM里有一个ADOConnection1,一个ADOQuery1(通过ADOConnection1连接一张表T)
我在A中并未用到DM.ADOQuery1,可是当我在B中用一个新的ADOQuery控件ADOQueryB通过DM.ADOConnection1
连接表T时,却编译不通过,提示“数据异常突起”,我非得把B中的DataSource连接在DM.ADOQuery1上才可以编译执行
我已经在A中用了DM.ADOQuery1.Connection.Close; DM.ADOQuery1.Close; 还是一样的错误!实在百思不得其解!还请各位前辈指点!
谢谢~~
解决方案 »
- 关于js内存泄漏的代码,谁能帮我看看哪里有内存泄漏?
- 如何从excel中读取数据,并保存到文本中?
- 如何得到一个一个控件(如:BUTTON,LABLEL等)的《所有属性》和所有属性的全部可能取值?多谢!!!!
- jpeg圖片存入數據庫只有圖片超過25k圖片下半部份全是馬賽克,越大越多沒辦法了。
- 简单问题,如何在SaveDialog的默认文件路径没有对应文件时自动创建一个文本文件?
- DBgrid中能实现类似翻页的效果吗?
- 使用Delphi读取Excel单元格批注时如何判断是否存在批注?
- IDTCPClient 发关自定义结构
- 高分求助!!进来看一看!
- 谁有DBGridEh(EhLib包)的控件
- 我想在DBGrid里实现字段的Checkbox功能和下拉功能,请问一下怎么操作.
- 第三个问题是:菜单问题
可能是建立了datamodule以後就不允許在其它窗體中建立數據連接
ADOConnection1的连接语句
以及Adoquery的Sql写法
procedure B.Button1Click(Sender: TObject)
var
AdoQuery1: TAdoQuery;
begin
AdoQuery1 := TADoQuery.Create(Self);
AdoQuery1.Connection := DM.AdoConnection1;
AdoQuery1.SQL.Text := 'select * from tablename';
AdoQuery1.Open;
DataSource1.DataSet := AdoQuery1;
//後面別忘了釋放
end;
不可能有这个限制的。
楼主再找找其它原因
最好设断点
应该是那个事件被循环调用
没有事件重复~
B表中的ADOQueryB的 active 一为true 就出错~~
大家帮我看看~~
等我试试~~
我使用拉!我把DB加如到B中拉!!谢谢~
终于找到错误拉!!
原来我把: Application.CreateForm(TDM, DM);放在了 Application.CreateForm(TB, B); 之后!!但我有点疑惑!
为什么关于A窗口的, Application.CreateForm(TA, A); 我也是放在 Application.CreateForm(TDM, DM); 之后!!为什么A 就对!而B 不对呢!?
我在A中用调用了DM, 再B中没有用到DM啊!?
单步执行:( A中:用DataSourceA调用了DM, B中:也用DataSourceB调用DM, 新的ADOQueryB没有调用DM的ADOCONNECTION1)
Application.CreateForm(TA, A);
Application.CreateForm(TB, B);
Application.CreateForm(TDM, DM);//正确
单步执行:( A中:用DataSourceA调用了DM, B中:也用DataSourceB调用DM, 新的ADOQueryB 有 调用DM的ADOCONNECTION1)
Application.CreateForm(TA, A);
Application.CreateForm(TB, B);
Application.CreateForm(TDM, DM);//错误,提示ADOCONNECTION1连接的错误这是什么原因呢?! 莫非DataSource调用DOQuery不用先创建DM!?困惑!谢谢~各位~
Application.CreateForm(TB, B);这里如果没有adoqueryp这句就可以了Application.CreateForm(TDM, DM);//
以后写程序首先要创建数据模块