Ir para conteúdo
Fórum Script Brasil
  • 0

Qual Sera Agora O Erro?


Carlos Rocha

Pergunta

Ola Pessoal, to pelejandfo pra apreder a trabalhar com zeos e mysql e quero agradecer a paciencia de voces.

Minha duvida agora é a seguinte:

Enxuquei meu código.

E agora tenho dois butoons,

um atualizar com um update

um cadastrar com um insert

mas apois clikar em um ou no outro botão, ta dando a seguinte mensagem.

Can not Retrieve ResultSet Data
Olhem meu código:

unit cadastros;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DBCtrls, DB, ZAbstractRODataset,
  ZAbstractDataset, ZDataset, ZConnection, Buttons, Grids, DBGrids;

type
  TFormCadastros = class(TForm)
    ZConnectionImobiliaria: TZConnection;
    ZQueryClientes: TZQuery;
    DataSource1: TDataSource;
    ComboBoxNome: TComboBox;
    ComboBoxCpfCnpj: TComboBox;
    ButtonSalvar: TButton;
    ComboBoxTelefone: TComboBox;
    ComboBoxEndereco: TComboBox;
    ComboBoxCidade: TComboBox;
    ComboBoxNacimento: TComboBox;
    LabelNome: TLabel;
    LabelCpfCnpj: TLabel;
    LabelTelefone: TLabel;
    LabelEndereco: TLabel;
    LabelCidade: TLabel;
    LabelNacimento: TLabel;
    ZQueryClientesCliId: TLargeintField;
    ZQueryClientesCliNome: TStringField;
    ZQueryClientesCliCpfCnpj: TStringField;
    ZQueryClientesCliTelefone: TIntegerField;
    ZQueryClientesCliEndereco: TStringField;
    ZQueryClientesCliCidade: TStringField;
    ZQueryClientesCliNacimento: TStringField;
    ButtonAtualizar: TButton;
    ComboBoxID: TComboBox;
    LabelID: TLabel;
    ZQueryClientes2: TZQuery;
    procedure ComboBoxNomeChange(Sender: TObject);
    procedure ButtonSalvarClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ButtonAtualizarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormCadastros: TFormCadastros;

implementation

{$R *.dfm}

procedure TFormCadastros.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
Action := caFree; // remove o form da memória
FormCadastros := NIL; // informa que foi destruído (não criado)
end;

procedure TFormCadastros.ComboBoxNomeChange(Sender: TObject);
begin
ZQueryClientes.Open;
ZQueryClientes.first;
while not ZQueryClientes.EOF do
begin
ComboBoxNome.Items.Add(VarToStr(ZQueryClientes.Fields[1].value));
ZQueryClientes.Next;
end;

ZQueryClientes.LOCATE('CliNome',ComboBoxNome.Text,[loCaseInsensitive, loPartialKey]);
ComboBoxID.TEXT:=ZQueryClientes.fieldbyname('CliID').Value;
ComboBoxCPFCNPJ.TEXT:=ZQueryClientes.fieldbyname('CliCpfCnpj').Value;
ComboBoxTelefone.TEXT:=ZQueryClientes.fieldbyname('CliTelefone').Value;
ComboBoxEndereco.TEXT:=ZQueryClientes.fieldbyname('CliEndereco').AsString;
ComboBoxCidade.TEXT:=ZQueryClientes.fieldbyname('CliCidade').AsString;
ComboBoxNacimento.TEXT:=ZQueryClientes.fieldbyname('CliNacimento').Value;
ZQueryClientes.Next;

end;

procedure TFormCadastros.ButtonSalvarClick(Sender: TObject);
begin
ZQueryClientes.Active := False;
ZQueryClientes.SQL.Clear;
ZQueryClientes.SQL.Add('Insert into Clientes(CliNome,CliCpfCnpj,CliTelefone,CliEndereco,CliCidade,CliNacimento) Values('+''''+ComboBoxNome.Text+''''+','+''''+ComboBoxCpfCnpj.Text+''''+','+''''+ComboBoxTelefone.Text+''''+','+''''+ComboBoxEndereco.Text+''''+','+''''+ComboBoxCidade.Text+''''+','+''''+ComboBoxNacimento.Text+''''+')');
ZQueryClientes.Open;
ZQueryClientes.ExecSQL;
ZQueryClientes.Append;
 ShowMessage('Ok!');
 ComboBoxNome.SetFocus; // posiciona na caixa de texto novamente
 Exit; // retorna
end;

procedure TFormCadastros.ButtonAtualizarClick(Sender: TObject);
begin
ZQueryClientes.Active := False;
ZQueryClientes.SQL.Clear;
ZQueryClientes.SQL.Add('Update Clientes set CliNome='+''''+ComboBoxNome.Text+''''+',CliCpfCnpj='+''''+ComboBoxCpfCnpj.Text+''''+',CliTelefone='+''''+ComboBoxTelefone.Text+''''+',CliEndereco='+''''+ComboBoxEndereco.Text+''''+',CliCidade='+''''+ComboBoxCidade.Text+''''+',CliNacimento='+''''+ComboBoxNacimento.Text+''''+' where CliId='+''''+ComboBoxId.Text+''''+'');
ZQueryClientes.Open;
ZQueryClientes.ExecSQL;
ZQueryClientes.Append;
 ShowMessage('Ok!');
 ComboBoxNome.SetFocus; // posiciona na caixa de texto novamente
 Exit; // retorna
end;

end.

Qual sera agora o erro?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Colega, referente sua primeira pergunta, não sei quanto ao Zeos, mas o método Append que descende de TDataset, coloca o Dataset em inserção e ele deve estar em modo dsEdit p/ poder incluir um novo registro p/ depois ser dado o Post. Como você está usando ExecSQL, isso não tem nada a ver com Append; você deve utilizar um Select para isto.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...