ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Erro ao realizar Insert

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
monaro
Novato
Novato


Registrado: Sexta-Feira, 17 de Mai de 2013
Mensagens: 9

MensagemEnviada: Ter Jun 04, 2013 5:33 pm    Assunto: Erro ao realizar Insert Responder com Citação

Fala Galera,

To executando o código abaixo, passando os valores como parâmetro para o Insert, atribuído a variável S. Uso o componente Zeos.

O código é:

Código:
unit U_CadEst;

interface

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

type
  TFormCadEst = class(TForm)
    Label1: TLabel;
    Timer1: TTimer;
    LabelHora: TLabel;
    Label2: TLabel;
    BtnConfEst: TButton;
    BtnSair: TButton;
    LPlaca: TLabel;
    LModelo: TLabel;
    LMarca: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    LabelData: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure BtnSairClick(Sender: TObject);
    procedure BtnConfEstClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormCadEst: TFormCadEst;

implementation

uses UDataModule;

{$R *.dfm}


procedure TFormCadEst.Timer1Timer(Sender: TObject);
begin
{ Na linha de código seguinte foram utilizadas as funções FormatDateTime
            (que formata data e hora atual obtida do sistema) e Now (que obtem a
             data e a hora do sistema)
         }
LabelHora.Caption := FormatDateTime('hh:mm:ss AM/PM', Now);
LabelData.Caption := FormatDateTime('yyyy/mm/dd', Now);
end;

procedure TFormCadEst.BtnSairClick(Sender: TObject);
begin
FormCadEst.close;
end;

procedure TFormCadEst.BtnConfEstClick(Sender: TObject);
var
  S: string;

Begin
  S:='Insert into Estadia (PlacaVel,DataEntrada,HoraEntrada) values (' ;
  S:=':pPlaca, :pDataEntrada, :pHoraEntrada)';

 
  if MessageDlg ('Confirma a inclusão destes dados no Banco de Dados?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then

  Begin
    //Limpa a propriedade SQL da engine ZQuery usando o método CLEAR
    DataModule1.ZQ_Projeto3.SQL.Clear;
     
    DataModule1.ZQ_Projeto3.ParamByName('pPlaca').AsString := LPlaca.Caption;
    DataModule1.ZQ_Projeto3.ParamByName('pDataEntrada').Asstring := LabelData.Caption;
    DataModule1.ZQ_Projeto3.ParamByName('pHoraEntrada').Asstring := LabelHora.Caption;

    DataModule1.ZQ_Projeto3.SQL.Add(S);
    //DataModule1.ZQ_Projeto3.Open;
    DataModule1.ZQ_Projeto3.ExecSQL;
    DataModule1.ListarTodosReg();
    MessageDlg('Registro incluido com sucesso.', mtInformation, [mbOk], 0);

  End
  Else
  begin
    Showmessage ('Registro não incluido');
  end;
End;

end.


Está exibindo o erro:

"Project P_Cadastro.exe raised exception class EDatabaseError with message 'ZQ_Projeto3: Parameter 'pPlaca' not found. process stopped. Use step or Run to continue."

Uso PostgreSql

alguém pode me dar uma força nisso aew?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Deganutti
Aprendiz
Aprendiz


Registrado: Terça-Feira, 24 de Janeiro de 2012
Mensagens: 244

MensagemEnviada: Ter Jun 04, 2013 5:44 pm    Assunto: Responder com Citação

Código:

Begin
    //Limpa a propriedade SQL da engine ZQuery usando o método CLEAR
    DataModule1.ZQ_Projeto3.SQL.Clear;
     
    DataModule1.ZQ_Projeto3.ParamByName('pPlaca').AsString := LPlaca.Caption;
    DataModule1.ZQ_Projeto3.ParamByName('pDataEntrada').Asstring := LabelData.Caption;
    DataModule1.ZQ_Projeto3.ParamByName('pHoraEntrada').Asstring := LabelHora.Caption;

    DataModule1.ZQ_Projeto3.SQL.Add(S);
    //DataModule1.ZQ_Projeto3.Open;
    DataModule1.ZQ_Projeto3.ExecSQL;
    DataModule1.ListarTodosReg();
    MessageDlg('Registro incluido com sucesso.', mtInformation, [mbOk], 0);

{Cade o SQL?? com os parametros...}

[]'s
_________________
"Se quiser testar o caráter de alguém, dê-lhe o poder" - Abraham Lincoln
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Jun 04, 2013 6:03 pm    Assunto: Responder com Citação

Boa tarde,

Experimente dessa forma:

Código:
procedure TFormCadEst.BtnConfEstClick(Sender: TObject);
Begin
  if MessageDlg ('Confirma a inclusão destes dados no Banco de Dados?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then

  Begin
    //Limpa a propriedade SQL da engine ZQuery usando o método CLEAR
    DataModule1.ZQ_Projeto3.SQL.Clear;
    DataModule1.ZQ_Projeto3.SQL.Add('Insert into Estadia (PlacaVel, DataEntrada, HoraEntrada) values (');
    DataModule1.ZQ_Projeto3.SQL.Add(':pPlaca, :pDataEntrada, :pHoraEntrada)');
     
    DataModule1.ZQ_Projeto3.ParamByName('pPlaca').AsString := LPlaca.Caption;
    DataModule1.ZQ_Projeto3.ParamByName('pDataEntrada').Asstring := LabelData.Caption;
    DataModule1.ZQ_Projeto3.ParamByName('pHoraEntrada').Asstring := LabelHora.Caption;

    //DataModule1.ZQ_Projeto3.Open;
    DataModule1.ZQ_Projeto3.ExecSQL;
    DataModule1.ListarTodosReg();
    MessageDlg('Registro incluido com sucesso.', mtInformation, [mbOk], 0);

  End
  Else
    Showmessage ('Registro não incluido');
End;


obs:

- não sei se vai funcionar passando a data e a hora para os parâmetros utilizando AsString
- talvez seja melhor considerar a possibilidade de criar um campo que armazene a data e a hora juntos em vez de 2 campos separados

Espero que ajude.

_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos-terreno
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB