PDA

Ver la Versión Completa : error (incorrect token followed by ":") en query


voldemmor
15-04-2008, 17:59:57
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

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:.


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


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


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 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
Muchas gracias.

El error era ese exactamente

los dos puntos definen al parametro