Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema de Query y Tedit AYUDA PORFAVOR (https://www.clubdelphi.com/foros/showthread.php?t=39160)

hurricane21 12-01-2007 01:40:19

Problema de Query y Tedit AYUDA PORFAVOR
 
Hola que tal. Mi problema es el siguiente Tengo un formulario el cual se trata de incluir nuevos datos dentro de una base de datos, en el cual por obligacion debo tener Tedit, y estos a su vez conectarlos a Un query y a un datasource los cuales estan dirigidos hacia mi base de datos. El problema es que me tira un error al pulsar el boton aceptar (el cual me deberia ingresar automaticamente los valores insertados a mano),me dice que al 'field' en este caso '@codigopostal' no le inclui los suficientes parametros, siendo que el formulario esta hecho para incluir los datos de codigo postal, en el tedit, y lo mismo pasa con cada uno de los 'field'. ademas le tengo este codigo

Código Delphi [-]
procedure TForm11.BB_AceptarClick(Sender: TObject);
var
  query:string;
begin
   query := 'SP_AGREGAR_EMPLEADO ' +
             chr(39) + ED_idEmployee.text + chr(39) + ',' +
             chr(39) + ED_LastName.text + chr(39) + ',' +
             chr(39) + ED_FirstName.text + chr(39) + ',' +
             chr(39) + ED_Title.text + chr(39) + ',' +
             chr(39) + ED_TitleofCourtesy.text + chr(39) + ',' +
             chr(39) + ED_BirthDate.text + chr(39) + ',' +
             chr(39) + ED_HireDate.text + chr(39) + ',' +
             chr(39) + ED_Adress.text + chr(39) + ',' +
             chr(39) + ED_City.Text + chr(39) + ',' +
             chr(39) + ED_Region.Text + chr(39) + ',' +
             chr(39) + ED_PostalCode.text + chr(39) + ',' +
             chr(39) + ED_Country.text + chr(39) + ',' +
             chr(39) + ED_HomePhone.text + chr(39) + ',' +
             chr(39) + ED_Extension.text + chr(39);

   if Messagedlg('Está seguro de guardar este registro?', mtwarning, [mbYes,mbNo],0) = mrYes then
       begin
          Query2.SQL.Clear;
          Query2.SQL.Add(query);
          Query2.ExecSQL;
          Showmessage('Registro guardado en forma correcta');
          close
       end;
end;

Si alguien me puede ayudar, bienvenido sea.

Bicho 12-01-2007 11:12:27

Hola, antetodo bienvenido al ClubDelphi.
Primero échale un vistazo a la Guía de Estilo y entenderás que el título de tu hilo no es el más idóneo.

En cuanto a tú problema, no veo la solución ahora mismo, pero puedes intentar varias cosas para intentar sacarlo por tí mismo.

- Puedes añadir un breakPoint en la linea donde asignas tu cadena a la variable Query. Llegar hasta el ExecSQL con F8 y ver que contiene Query, eso lo puedes copiar y ejecutar directamente sobre el cliente que tengas instalado de la base de datos y ver si funciona allí.
- El problema quizá esté en el SP, quizá deberías ponerlo aquí para verlo más claro.
- Esto ya es más un consejo:
Código Delphi [-]
   if Messagedlg('Está seguro de guardar este registro?', mtwarning, [mbYes,mbNo],0) = mrYes then
       begin
          Query2.SQL.Clear;
          Query2.SQL.Add(query);
          Query2.ExecSQL;
          Showmessage('Registro guardado en forma correcta');
          close
       end;
Tras hacer el ExecSQL muestras un mensaje informando de que se ha guardado bien. En tu caso, seguro que te debe aparecer el error de la base de datos y despues el de registro guardado, no?
Quizá deberías encerrar el intento de guardado en un bloque Try Except, algo como esto:

Código Delphi [-]
   if Messagedlg('Está seguro de guardar este registro?', mtwarning, [mbYes,mbNo],0) = mrYes then
       begin
          try
            Query2.SQL.Clear;
            Query2.SQL.Add(query);
            Query2.ExecSQL;
          except
             on e:Exception do //En lugar de Exception puedes usar cualquier otro manejador de excepciones
               ShowMessage('Se produjo un erro al guardar el registro: ' + e.message);
          end;
//Yo no mostraría el mensaje de se ha guardado correctamente, ya que se entiende que debe ir bien y se debe guardar, sólo mostrar algo si falla. Siguiendo la "norma" inglesa: No news, good news!
//          Showmessage('Registro guardado en forma correcta');

          close;
       end;

Espero te sirva.

Saludos


La franja horaria es GMT +2. Ahora son las 07:21:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi