用了DataMould,在查询的时候,出现(Access Violation at address 0048ae17 in modul 'main.exe'),这种错误,好像在DELPHI中经常出现!

Rou 2006-03-30 09:34:30
用了DataMould,在查询的时候,出现(Access Violation at address 0048ae17 in modul 'main.exe')
下面是源码!各位看看看!

Main.dpr
------------------------------------------------------------------------
program Main;

uses
Forms,
Login in 'Login.pas' {frmLogin},
DataMould in 'DataMould.pas' {DataModule1: TDataModule},
Public_function in 'Public_function.pas',
default in 'default.pas' {Form1};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TDataModule1, DataModule1);
Application.Run;
end.
...全文
77 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rou 2006-03-30
  • 打赏
  • 举报
回复
login.pas();//这里是出错的文件,已经标出来了
------------------------------------------------------------------------------------
unit Login;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TfrmLogin = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
LoginOk:boolean;
public
{ Public declarations }
end;

var
frmLogin: TfrmLogin;
function showlogin():boolean;
implementation

uses DataMould, Public_function, default,ADOint;

{$R *.dfm}

procedure TfrmLogin.Button1Click(Sender: TObject);
var sql:string;
begin
if (trim(edit1.Text)='') then
begin
ShowDlg('请输入用户名');
Exit;
end;

if(trim(edit2.text)='') then
begin
ShowDlg('请输入密码;');
Exit;
end;

sql:= 'select * from XY_Manager where r_user='''+trim(edit1.Text)+''' and r_pwd='''+trim(edit2.Text)+'''';
Execute_SQL(DataModule1.ADODataSet1,sql);//这里是出错的地方



(* if DataModule1.ADODataSet1.IsEmpty then
begin
ShowDlg('系统中没有这个用户!');
Edit1.SetFocus ;
Edit2.Clear;
end
else
begin
NowUser.id:= DataModule1.ADODataSet1.Recordset.Fields['id'].Value ;
NowUser.R_user:=DataModule1.ADODataSet1.Recordset.Fields['r_user'].value;
LoginOk:=true;
end;
*)
end;

function showlogin():boolean;
var frmLogin: TfrmLogin;
begin
frmLogin:=nil;
try
result:=false;
frmLogin:=TfrmLogin.Create(application) ;
frmlogin.ShowModal ;
result:=frmlogin.LoginOk;
finally // wrap up
if frmlogin<>nil then
frmlogin.Free ;
end; // try/finally
end;

end.
Rou 2006-03-30
  • 打赏
  • 举报
回复
Public_function.pas
-------------------------------------------------------------
unit Public_function;

interface
uses Classes,ADODB,Controls;

type
TUser=record
id:integer;
R_user:string;
end;

var NowUser:TUser;

Procedure Execute_BatchSql(s:TStrings);
Procedure Execute_SQL(var DS:TADODataSet;s:string);
function ShowDlg(s:string):boolean;

implementation

uses DataMould,Dialogs;

Procedure Execute_BatchSql(s:TStrings);
begin
end;

Procedure Execute_SQL(var DS:TADODataSet;s:string);
begin
DS.Active :=false;
DS.CommandText:=s;
DS.Active:=true;
end;

function ShowDlg(s:string):boolean;
begin
if MessageDlg(s, mtConfirmation, [mbYes], 0) = mrYes then
result := True
else
Result := False ;

end;

end.

Rou 2006-03-30
  • 打赏
  • 举报
回复
DataMould.pas
------------------------------------------------------
unit DataMould;

interface

uses
SysUtils, Classes, DB, ADODB;

type
TDataModule1 = class(TDataModule)
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
private
{ Private declarations }
public
{ Public declarations }
end;

var
DataModule1: TDataModule1;

implementation

{$R *.dfm}

end.

2,497

社区成员

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

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