Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   No encuentro el error en esta sentencia Sql..... (https://www.clubdelphi.com/foros/showthread.php?t=71859)

verito_83mdq 14-01-2011 16:08:54

No encuentro el error en esta sentencia Sql.....
 
Buenas a todos!!! Tengo un problema con esta sentencia, es un Insert bastante comun pero lo que quiero hacer es partirla en varias lineas ya que la que realmente tengo que usar tiene muchos campos y se me hace muy larga en una sola linea. Cuando compilo en Delphi me marca error en la linea que sigue de la consulta Sql, se que el error esta en la consulta porque si la anulo complila bien. Esta es la sentencia:


Código SQL [-]
   with QueryDataModule.ConyugeZQuery do 
                begin 
                     If active then close; 
                     SQL.Clear; 
                     SQL.Add('Insert Into cliente(Apellido,Nombre)'); 
                     SQL.Add('Values (:Apel,:Nom)'); 
                     ParamByName('Apel').Value:=AltasForm.ApellidoEdit.Text; 
                     ParamByName('Nom').Value:=AltasForm.NombreEdit.Text; 
                     ExecSQL; 
                end; 
              end;

Este es el error que arroja:
Código Delphi [-]
Declaration expected but identifier 'xxxx' found

Espero que me puedan ayudar!! Desde ya muchas Gracias!

roman 14-01-2011 16:14:07

Así como la pones, no le veo ningún problema. Tendríamos que ver cómo estás partiendo la consulta.

// Saludos

Casimiro Notevi 14-01-2011 16:14:59

Cita:

Declaration expected but identifier 'xxxx' found
¿Ese es el mensaje exacto?, ¿identifier 'xxxx'?

verito_83mdq 14-01-2011 16:34:11

Gracias por contestar! Roman no entiendo eso que dijistes q tendriamos que ver como estás partiendo la consulta, así es como lo tengo en el delphi copie el código y lo pegue acá. Casimiro puse xxx por poner algo, quise decir que no es que me tira siempre la misma linea si anulo esa linea me salta el error en la que sigue. Gracias a los dos, que estaré haciendo mal? Saludos!

Casimiro Notevi 14-01-2011 16:42:36

Pero copia y pega aquí el mensaje exacto, que tenemos la bola de cristal en el servicio técnico y hasta el lunes no está lista.

verito_83mdq 14-01-2011 16:55:13

Código SQL [-]
with QueryDataModule.ConyugeZQuery do 
                begin 
                     If active then close; 
                     SQL.Clear; 
                     SQL.Add('Insert Into cliente(Apellido,Nombre)'); 
                     SQL.Add('Values (:Apel,:Nom)'); 
                     ParamByName('Apel').Value:=AltasForm.ApellidoEdit.Text; 
                     ParamByName('Nom').Value:=AltasForm.NombreEdit.Text; 
                     ExecSQL; 
                end; 
              end;

Código Delphi [-]
  QueryDataModule.ClienteZQuery.Close;

                 flag:=False;

                 NuevaTarjetaForm.Close;

                 AltasForm.Close;

                 release;

Código Delphi [-]
[Error] DatosVentas.pas(419): Declaration expected but identifier 'QueryDataModule' found

Ahí Esta Todo, lo que te explicaba hoy es que abajo de la consulta tengo el código que sigue
si anulo el ClienteZQuery.Close, me tira error en flag, y así continuo hasta el End.
Saludos! :)

Casimiro Notevi 14-01-2011 16:58:25

¿Y qué hay antes de
QueryDataModule ?

verito_83mdq 14-01-2011 17:08:16

Esta la consulta y seguido a esta el codigo. Y antes de la consulta no hay nada. Que opinas que puede ser? Gracias!!!

defcon1_es 14-01-2011 17:45:13

Hola, creo que te sobra un end;

Código Delphi [-]
with QueryDataModule.ConyugeZQuery do 
begin 
  If active then close; 
  SQL.Clear; 
  SQL.Add('Insert Into cliente(Apellido,Nombre)'); 
  SQL.Add('Values (:Apel,:Nom)'); 
  ParamByName('Apel').Value:=AltasForm.ApellidoEdit.Text; 
  ParamByName('Nom').Value:=AltasForm.NombreEdit.Text; 
  ExecSQL; 
  end; //Este sobra.
end;

microbiano 14-01-2011 17:46:50

prueba asi
 
umm creo que el problema esta en que no tienes declarado el el uses el form de donde tomas los datos , ahora si es el mismo por que no pruebas de la siguiente manera.
Código Delphi [-]
with QueryDataModule.ConyugeZQuery do
     begin
      SQL.Clear;
      SQL.Add('insert into cliente(apellido,nombre)');
      SQL.Add('values(:Papellido,:Pnombre)');
      Parameters.ParamByName('Papellido').Value:=self.ApellidoEdit.text;
      Parameters.ParamByName('Pnombre').Value:=self.Nombreedit.text;     
      try
       ExecSQL;
       Application.MessageBox('Registro Almacenado con Éxito','Error', MB_OK + MB_ICONINFORMATION);       
      except
      on E:EOleException do
       begin
        MessageDlg(Format('Error: %s    Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
       end;
      end;
     end;


tienes que hacer mencion a la libreria ComObjs para que funcione, es este caso al menos capturamos el mensaje para ver que es.

Chris 14-01-2011 17:54:20

mmm.. amigo, debes saber que en algunos tipos de error Delphi indica visualmente que el problema está en la línea 15 cuando en realidad está en la línea 14 por ejemplo. En otras ocaciones hay varias líneas de diferencia. Es por eso que lo mejor sería que nos proporcionaras todo el código del procedimiento para ayudarte a debugearlo.

Saludos,
Chris

verito_83mdq 14-01-2011 18:09:22

No se enojen muchachos pero el ganador es defcon1, le borre el end y compilo lo mas bien, tenia entendido que llevaba el end, es mas vi varios ejemplos de consultas en varias lines y el with se cerraba con el end :(
Me siento mal por hacerles perder tiempo por semejante pavada! Lo cómico es que tengo una consulta partida en varias lineas pero de Update y si le saco el end no compila! Que opinan ustedes, acepto criticas!
Saludos!

defcon1_es 14-01-2011 18:29:43

Jejeje, jugaba con ventaja :p

Es un error de lo más tonto, que me ha pasado varias veces, hasta que me instalé cnPack, que entre otras cosas, colorea el código fuente.

Ahora ya no me dan ese tipo de errores :)

microbiano 14-01-2011 18:32:10

jajajaja suele pasar, aunque eso indica que deberias darle una leida, o consultar mas seguido la cara oculta de delphi jajajajaja. que maña


La franja horaria es GMT +2. Ahora son las 19:44:03.

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