Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Sentencia Case... error Incompatible types (https://www.clubdelphi.com/foros/showthread.php?t=70124)

BlueSteel 30-09-2010 23:23:47

Sentencia Case... error Incompatible types
 
Hola Amigos

Quiero realizar una consulta utilizando el case... hace tanto tiempo que no lo use.. me parece que desde clipper... uff.. y quiero poner algo así.. y obvio como no funciona .. pregunto aquí... la idea es sustituir varios if por esto.. y no se muy bien como hacerlo..

lo que quiero hacer es consultar el estado de un campo de una tabla en particular, la cual puede tener varias opciones pero parametrisadas.. y por eso quiero utilizarlo

Código Delphi [-]
Case Datos.AQ_Ubicacion['Ubi_Estado'] Of
       'H': sEst.Text := 'estado H';
       'D': sEst.Text := 'estado D';
end;

bueno el error que me da es esto,

[Error] Unit3.pas(147): Incompatible types: 'Integer' and 'Char'
[Error] Unit3.pas(148): Incompatible types: 'Integer' and 'Char'


que entiendo que estoy tratando de consultar un dato de tipo integer con un de tipo Char....

se supone que el contenido del campo es Char(1)... y que los valores pueden ser: H, D, V, T y así unos cuantos mas

si bien no es algo de gran cosa solo queria variar y aprender a usar otra forma de consultar... si utilizo los if.. me funciona bien..

espero comentarios...


Salu2:p:D

cloayza 30-09-2010 23:43:38

Amigo deberia ser asi:

Código Delphi [-]
Case Datos.AQ_Ubicacion['Ubi_Estado'].AsString[1] Of 
       'H': sEst.Text := 'estado H';
       'D': sEst.Text := 'estado D'; 
end

Saludos

ecfisa 30-09-2010 23:45:29

Hola BlueSteel.

Probá con:
Código Delphi [-]
 case IntToStr(Datos.AQ_Ubicacion['Ubi_Estado'])[1] of

Saludos. :)

Edito: Veo que cloayza ya respondío de forma similar... pero más rápido :D

BlueSteel 02-10-2010 00:10:28

Gracias..

probe las sentencia y me sigue dando el error, al menos cuando compilo me indica qu el erro esta en

Código Delphi [-]
'H':

y me sigue marcadon el error
[Error] Unit3.pas(147): Incompatible types: 'Integer' and 'Char'

Salu2

ecfisa 02-10-2010 01:12:44

Hola de nuevo BlueSteel.

Perdón no me percaté antes... :o, para referir al campo estas usando la propiedad vectorial por defecto y es un variant.

Entonces la conversión sería:
Código Delphi [-]
    case VarToStr(Datos.AQ_Ubicacion['Ubi_Estado'])[1] of


Saludos. :)

BlueSteel 05-10-2010 21:53:30

Ahora si funciono.. muchas gracias a todos

Salu2:p:D


La franja horaria es GMT +2. Ahora son las 12:33:57.

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