Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   error (incorrect token followed by ":") en query (https://www.clubdelphi.com/foros/showthread.php?t=55385)

voldemmor 15-04-2008 17:59:57

error (incorrect token followed by ":") en query
 
Hola amigos nuevamante hos molesto, para que me brinden su conocimiento y sabiduria:D:D

Estoy utilizando Delphi 6 + zeos + MySql 5

Quiero quenerar un pequeño reporte sobre si las matarias de un curso de una especialidad se encuentran con notas asignadas a los estudiantes.

Espero optener algo asi
Código:

ESPECIALIDAD CIENCIAS SOCIALES
  CUARTO CURSO
      Filosofia      -> no tiene notas ingresadas aun
      Matematica  -> Si tiene notas ingresadas
      ......
  QUINTO CURSO
        Materia1      -> si tiene notas
 
  ESPECIALIDAD QUIMICA
    CUARTO CURSO
      Materia 1      ->  SI Tiene notas
      MAteria 2    -->  Si tiene notas
 
 
...............

intento hacer Querys consecutivos He ir almacenando los datos de los codigos que necesito para pasarlos como parametros al siguiente Query en un array dinamico

el codigo en este.
Aun falta aun relizar el query de las materias segun cada curso, ya que lo estaba probando parte por parte:rolleyes:.

Código Delphi [-]
 
with AcademicData.zReadQuery do
begin
 {--------------especialidades--------------------}
   sql.Text := 'select codigo from especialidades';
   Open;
   First;
   nespe := RecordCount;
   GetMem(aEspe, nEspe * SizeOf(Integer));
   i:= 0;
   while(not Eof )do
   begin
     aEspe^[i]:= Fields[0].AsInteger;
     Next;
    inc(i);
   end;
   Close;
   sql.Clear;

   {--------------cursos--------------------}

   for i := 0 to nEspe-1 do
   begin
     SQL.Text := 'Select * from cursos where cod_especialidad =: pcod_especialidad';
     ParamByName('pcod_especialidad').AsInteger := aEspe^[i];
     Open;
     First;
     nCur := RecordCount;
     GetMem(aCur, nCur * SizeOf(Integer));
     j:= 0;
     while(not Eof )do
     begin
      aCur^[j]:= Fields[0].AsInteger;
      {-----------------------}
      memo1.Lines.Add(NombreEspecialidadCodigo(aespe^[i]));
      memo1.Lines.Add(NombreCursoCodigo(acur^[j]));

      Next;
      inc(j);
     end;
     Close;
     sql.Clear;
   end;


Pero al crear el segundo query consecutivo, me da el error mensionado, y en la linea de codigo subrayada en el codigo, justo cuando intento asignar el SQL.TEXT

Código:


Incorrect Token Followed by ":"

La verdad ya modifique mi codigo para usar arrays ya que antes usaba distintos ZReadOnlyQuery anidados pero me dio enste error y no se a que debe esto

Agradesco por anticipado toda su ayuda:):)

duilioisola 15-04-2008 18:08:21

El error parece ser que tienes un espacio de mas

Código Delphi [-]
   for i := 0 to nEspe-1 do
   begin
  SQL.Text := 'Select * from cursos where cod_especialidad =: pcod_especialidad';

eduarcol 15-04-2008 18:09:50

agrega un espacio entre el = y los dos puntos, y quita el espacio entre los : y el parametro

voldemmor 15-04-2008 18:19:42

ok lo voy a probar
 
ok entendido, Voy a probarlo.


Y gracias por su pronta respuesta..

PD: TalVes alguna de ustedes no tiene como nombre no es Barry Alenn?:D:D:D:D:D:D
Ya que contestaron a la velocidad de un rayo

voldemmor 16-04-2008 18:27:00

todo listo
 
Muchas gracias.

El error era ese exactamente

los dos puntos definen al parametro


La franja horaria es GMT +2. Ahora son las 22:41:24.

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