首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

一个BCB 6.0中关于ADOQuery控件的有关问题

2013-04-20 
一个BCB 6.0中关于ADOQuery控件的问题我首先新建一个三个窗体,Form1、Form2、Form3,Form1上添加了一个DBGrid

一个BCB 6.0中关于ADOQuery控件的问题
我首先新建一个三个窗体,Form1、Form2、Form3,Form1上添加了一个DBGrid1组件,一个ADOQuery1,一个ADOConnection1,DataSource1组件和一个Button,将DBGrid与数据库连接起来(具体怎么连,大家估计都知道),程序运行后只显示Form1,点击Button会显示Form3。

Form3上添加一个DBGrid,一个ADOQuery3,一个DataSource,一个Button,将DBGrid与数据库连接起来,该ADOQuery连接到Form1上的ADOConnection1;点击Button会显示Form2。

Form2上添加了2个Button,为Button1和Button2.。Button1的事件是:
void __fastcall TForm2::Button1Click(TObject *Sender)
{
  Form1->ADOQuery1->Close();
  Form1->ADOQuery1->SQL->Clear();
  Form1->ADOQuery1->SQL->Add("select * from xuzhou");
  Form1->ADOQuery1->Open(); //就是通过该按钮来执行Form1中的ADOQuery1中的SQL语句,结果显示在Form1上DBGrid1中
  Close();
}点击之后该事件可以成功执行,Form1上DBGrid1显示正确的结果。

Button2的事件:
void __fastcall TForm2::Button2Click(TObject *Sender)
{
  Form3->ADOQuery3->Close();
  Form3->ADOQuery3->SQL->Clear();
  Form3->ADOQuery3->SQL->Add("select * from xuzhou");
  Form3->ADOQuery3->Open(); //就是通过该按钮来执行Form3中的ADOQuery3中的SQL语句,结果显示在Form3上DBGrid中
  Close();
}点击之后该事件会出现问题,出现一个Debugger Exception Notification错误对话框,显示:Access violation at address 00404796 in module 'cxGrid.exe'.Read of address 000002F8

这两个事件可以说是一样的,实现的功能也是一样的,为什么结果是一个对,一个错呢?感谢各位高手帮忙解答一下
[解决办法]
Form3实例没有创建。
[解决办法]

引用:
我首先新建一个三个窗体,Form1、Form2、Form3,Form1上添加了一个DBGrid1组件,一个ADOQuery1,一个ADOConnection1,DataSource1组件和一个Button,将DBGrid与数据库连接起来(具体怎么连,大家估计都知道),程序运行后只显示Form1,点击Button会显示Form3。

Form3上添加一个DBGrid,一个ADOQuery3,一个……


把Form1中ADOQuery1复制到Form3中测试一下
Form3->ADOQuery1->Close();
  Form3->ADOQuery1->SQL->Clear();
  Form3->ADOQuery1->SQL->Add("select * from xuzhou");
  Form3->ADOQuery1->Open(); //结果显示在Form3上DBGrid中连Form3->ADOQuery1
  Close();


热点排行