Exception EAcessViolation - Delphi 7 - Zeos e MySQL - Iniciante

Delphi

06/12/2014

Bom dia pessoal !

Sou novo aqui no fórum e também no Delphi. Estou me familiarizando com a interface.
Instalei o componente Zeos para conexão mySQL e comecei a brincar aqui, no entanto, me deparei com um erro que já analisei várias vezes e não consigo desvendar, creio até que seja algo bobo pois é meu primeiro projeto em Delphi.

Não acredito que esteja relacionado com a conexão ao BD já que a conexão está sendo feita pela componente.

Será que algum dos amigos pode me dar uma luz ?

Segue o código:

unit uCadastro;

interface

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

type
TForm_Cadastro = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit_ID: TEdit;
Edit_Nome: TEdit;
Edit_Sobrenome: TEdit;
Edit_Endereco: TEdit;
Edit_Numero: TEdit;
DataSource_Cadastro: TDataSource;
ClientDataSet_Cadastro: TClientDataSet;
Button_Consulta: TButton;
procedure Button_ConsultaClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form_Cadastro: TForm_Cadastro;

implementation

{$R *.dfm}

procedure TForm_Cadastro.Button_ConsultaClick(Sender: TObject);
begin
dmMySQL.ZQuery.Close;
dmMySQL.ZQuery.SQL.Clear;
dmMySQL.ZQuery.SQL.Add('SELECT ID, Nome, Sobrenome, Endereco, Numero'+
'FROM Cadastro'+
'WHERE ID =' + Edit_ID.Text);
dmMySQL.ZQuery.Open;
dmMySQL.ZQuery.ExecSQL;

ClientDataSet_Cadastro.Close;
ClientDataSet_Cadastro.SetProvider(dmMySQL.DataSetProvider);
ClientDataSet_Cadastro.Open;

Edit_Nome.Text := ClientDataSet_Cadastro.FieldByName('Nome').AsString;
Edit_Sobrenome.Text := ClientDataSet_Cadastro.FieldByName('Sobrenome').AsString;
Edit_Endereco.Text := ClientDataSet_Cadastro.FieldByName('Endereco').AsString;
Edit_Numero.Text := ClientDataSet_Cadastro.FieldByName('Numero').AsString;

end;

end.
Fernando Sagaz

Fernando Sagaz

Curtidas 0

Respostas

Douglas

Douglas

06/12/2014

Fala Fernando, tudo bem? Vamos lá, vou tentar te ajudar. Debug o seu código e verifique aonde exatamente está explodindo o erro do access violation. Eu acredito, que seja no clientDataSet ao tentar abri-lo. Se for, complemente o seu código com a instrução abaixo:

ClientDataSet_Cadastro.Close;
ClientDataSet_Cadastro.CreateDataSet;
ClientDataSet_Cadastro.SetProvider(dmMySQL.DataSetProvider);
ClientDataSet_Cadastro.Open;


Aguardo o seu feedback. Boa Sorte!
GOSTEI 0
POSTAR