Bir intraweb projesi geliştiriyorum. IWDBgrid'de bir tablo çekiyorum. Bu tabloyla işim bittikten sonra aynı gride başka bir tablo çekmek istediğimde access violation hatası alıyorum.
Kodlar şöyle:
Kod: Tümünü seç
unit uHome;
interface
uses
Classes, SysUtils, IWAppForm, IWApplication, IWColor, IWTypes, Vcl.Controls,
IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, IWControl, IWCompGrids,
Data.DB, IWDBGrids, FireDAC.Stan.Intf, FireDAC.Stan.Option,
FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Stan.Param,
FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.VCLUI.Wait,
FireDAC.Comp.UI, FireDAC.Phys.MySQL, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
Vcl.Forms, IWVCLBaseContainer, IWContainer, IWHTMLContainer,
IWHTML40Container, IWRegion, IWCompLabel, Vcl.Menus, IWCompMenu,
Datasnap.DBClient;
type
TfrmHome = class(TIWAppForm)
FDConnection1: TFDConnection;
FDQuery1: TFDQuery;
DataSource1: TDataSource;
FDPhysMySQLDriverLink1: TFDPhysMySQLDriverLink;
FDGUIxWaitCursor1: TFDGUIxWaitCursor;
IWRegion1: TIWRegion;
IWLabel1: TIWLabel;
IWMenu1: TIWMenu;
MainMenu1: TMainMenu;
N11: TMenuItem;
N21: TMenuItem;
N31: TMenuItem;
mnuLog: TMenuItem;
N22221: TMenuItem;
N33331: TMenuItem;
Hakknda1: TMenuItem;
mnuPass: TMenuItem;
IWDBGrid1: TIWDBGrid;
DataSource2: TDataSource;
FDQuery2: TFDQuery;
procedure IWAppFormCreate(Sender: TObject);
procedure mnuLogClick(Sender: TObject);
procedure mnuPassClick(Sender: TObject);
public
end;
implementation
{$R *.dfm}
uses
UserSessionUnit;
procedure TfrmHome.IWAppFormCreate(Sender: TObject);
begin
//Burada hiçbir sorun yok.
//Veriler sorunsuz bir şekilde gridde görünüyor.
FDConnection1.Params.Add('Database=dbayrecords');
FDConnection1.Params.Add('User_Name=root');
FDConnection1.Params.Add('Password=hkn68');
FDConnection1.Params.Add('CharacterSet=utf8');
FDConnection1.Params.Add('DriverID=MySQL');
FDQuery1.SQL.Clear;
FDQuery1.SQL.add('select * from tblogs');
DataSource1.DataSet:=FDQuery1;
FDQuery1.Active:=true;
IWDBGrid1.DataSource:=DataSource1;
IWDBGrid1.Caption:='Log Kayıtları';
IWLabel1.Caption:='Hoş geldin '+(WebApplication.Data as TIWUserSession).name+
'! Leveliniz '+ inttostr((WebApplication.Data as TIWUserSession).level);
end;
procedure TfrmHome.mnuLogClick(Sender: TObject);
begin
//Bu komutlar çalıştığında hata alıyorum.
// Bazen access violation hatası bazen de dataset not edit or insert module hatası
DataSource1.DataSet.EnableControls;
DataSource1.DataSet.Close;
DataSource1.DataSet.Open;
DataSource1.DataSet.DisableControls;
FDQuery1.Active:=false;
FDQuery1.SQL.Clear;
FDQuery1.SQL.add('select * from tblogs');
DataSource1.DataSet:=FDQuery1;
FDQuery1.Active:=true;
IWDBGrid1.DataSource:=DataSource1;
IWDBGrid1.Caption:='Log Kayıtları';
end;
procedure TfrmHome.mnuPassClick(Sender: TObject);
begin
//Bu komutlar çalıştığında hata alıyorum.
// Bazen access violation hatası bazen de dataset not edit or insert module hatası
DataSource1.DataSet.EnableControls;
DataSource1.DataSet.Close;
DataSource1.DataSet.Open;
DataSource1.DataSet.DisableControls;
FDQuery1.Active:=false;
FDQuery1.SQL.Clear;
FDQuery1.SQL.add('select * from tbpasswords');
DataSource1.DataSet:=FDQuery1;
FDQuery1.Active:=true;
IWDBGrid1.DataSource:=DataSource1;
IWDBGrid1.Caption:='Kullanıcılar ve Şifreleri';
end;
end.
Yardımlarınız için şimdiden teşekkürler.