Fórum Exception EAcessViolation - Delphi 7 - Zeos e MySQL - Iniciante #503592
06/12/2014
0
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.
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
Curtir tópico
+ 0
Responder
Posts
08/12/2014
Douglas
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:
Aguardo o seu feedback. Boa Sorte!
ClientDataSet_Cadastro.Close; ClientDataSet_Cadastro.CreateDataSet; ClientDataSet_Cadastro.SetProvider(dmMySQL.DataSetProvider); ClientDataSet_Cadastro.Open;
Aguardo o seu feedback. Boa Sorte!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)