procedure Tlogform.Button1Click(Sender: TObject);
begin
  try
    if dm.conn.Connected=true then
      dm.conn.Connected:=false;
    dm.conn.Open;
    dm.manager_adoqry.Connection:=dm.conn;
    dm.manager_adoqry.Active:=true;    dm.manager_adoqry.close;
    dm.manager_adoqry.sql.clear;
    dm.manager_adoqry.sql.add('select * from manager where username='+''''+nameedt.text+''''+' and managerpwd='+''''+passwdedt.text+''''+' and power='+''''+'3'+'''');
    dm.manager_adoqry.open;   if dm.manager_adoqry.recordcount=1 then
     showmessage('yes')
   else showmessage('no');
  except showmessage('53');
  end;
end;
用adoconnection和adoquery做的cs机构。
这是登陆窗口,可是老是 提示:
 project manage.exe raised exception class eaccessviolation with message 'access violation at addree 046e9c2 in module 'manage.exe'.read of address oooooo50'.process stopped .use step or run to contnue.谢谢,虚心请教,分不够再加!

解决方案 »

  1.   

    设断点调试一下,看是哪句出错!把 dm.manager_adoqry.Active:=true;这句放到
    dm.manager_adoqry.open;之后!
      

  2.   

    看不出什么问题,,
    dm.manager_adoqry.Active:=true;  去掉dm.manager_adoqry.open;  改为dm.manager_adoqry.Active:=true;
      

  3.   

    1.首先建议将你的ado打个补丁,升个级:
    dm.manager_adoqry.Active:=true 不需要,可删除!
    2.设置断点后,跟踪调试!
      

  4.   

    回:  artman(服务器太忙)   
    我用断点调试过了,在第一个if语句就报那样的错了。你的方法也试过了,不行。
    回:cbdiy(··V-R战警··)   
    你说的我也试过了,还是不行。麻烦各位老大再努力想想,虚心请教!
      

  5.   

    回: wanglight(王阳) 
    怎么样升级ado?重要吗?
      

  6.   

    登录??你用了DataModule窗体了没有?一般DataModule窗体在所有窗体建立之后才能用的  Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TDataModule2, DataModule2);
      Application.Run;如果在主窗体的Create中建立了登录窗体,再在登录窗体中用数据集就会出错
      

  7.   

    首先确定你的数据模块DM要先与logFrm登陆窗体建立 如:
    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {DataModule2: TDataModule};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TDataModule2, DataModule2);//数据模块
      Application.CreateForm(TForm1, Form1);  Application.Run;
    end.
    再在设计期激活或打开DM窗体,试试。
      

  8.   

    看看DataModule对象(dm)在使用前是否已经创建。
    或者在Porject Options\Forms中是否列入自动创建(Auto-Create Forms)列表中
      

  9.   

    回: CDSoftwareWj(95927) 
    我所说的就是你这种情况,用的是datamodule,而且是在主窗体的Create中建立登陆窗口。
    logform:=Tlogform.create(self);
    logform.showmodal;
    然后再在登录窗体中用数据集的,请问各位高手,有没有什么解决的办法?虚心请教!!!
      

  10.   

    小问题 hehe^^只要不用DataModule中的数据集就可以啦 ^^在登录窗体中放要用的数据集就OK了
      

  11.   

    把这句话提前
    Application.CreateForm(TDataModule2, DataModule2);//数据模块
    确保在DataModule2创建后在调用
    logform:=Tlogform.create(self);
    logform.showmodal;