Hola amigos,
Tengo un grave problema con SELECT. Al hacer una consulta sencilla no me retorna uno de los valores: me dice que el campo no existe, cuando el campo sí existe.
La consulta es la siguiente:
Código Delphi
[-]
Q.Close;Q.SQL.Clear;
Q.SQL.Add('SELECT *');
Q.SQL.Add('FROM _Hor');
Q.SQL.Add('WHERE Des=''Horno 1'';');
Q.Open;
If Q.RecordCount<1 Then
Begin
Beep;
ShowMessage('No se encuentra el horno');
Exit;
End;
Q.First;
List.Clear;
List.Items.Add(Q.FieldValues['Des']);
List.Items.Add(Q.FieldValues['Pre']);
List.Items.Add(Q.FieldValues['Cost']);
DesHor:=Q.FieldValues['Des'];
Pre.Text:=Q.FieldValues['Pre'];
CostHor:=Q.FieldValues['Cost'];
Quando hago Q.FieldValues['Cont'] me dice que el campo 'Cont' no existe.
La única solucion que de momento he encontrado es passar la informacion a una List, y luego a las variables deseadas; ya se que es muy "chapucera", pero por lo menos funciona.
Código Delphi
[-]
Q.Close;Q.SQL.Clear;
Q.SQL.Add('SELECT *');
Q.SQL.Add('FROM _Hor');
Q.SQL.Add('WHERE Des=''Horno 1'';');
Q.Open;
If Q.RecordCount<1 Then
Begin
Beep;
ShowMessage('No se encuentra el horno');
Exit;
End;
Q.First;
List.Clear;
List.Items.Add(Q.FieldValues['Des']);
List.Items.Add(Q.FieldValues['Pre']);
List.Items.Add(Q.FieldValues['Cost']);
DesHor:=List.Items[0];
Pre.Text:=List.Items[1];
CostHor:=StrToFloat(List.Items[2]);
Haciendolo así no hay ningún problema, me retorna todos los valores.
¿Alguien me podría ayudar a averiguar que pasa? a ver si no tengo que usar esta nefasta solución.
Uso Delphi 6 y Q es un ADOQuery, trabajo con una base de datos SQLServer donde el campo 'Des' es char 50, y 'Pre' y 'Cost' son Float.
Muchisimas gracias por adelantado