Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-11-2007
Avatar de Cecil
Cecil Cecil is offline
Miembro
 
Registrado: may 2007
Posts: 97
Poder: 17
Cecil Va por buen camino
Ordinal Type Required

Hola a todos, queria exponeros un problema que tengo:
De repente, no se porque, cuando necesito pasar como parámetro un array sea del tipo que sea, el compilador me lanza este error:

[DCC Error] Prueba.pas(181): E2001 Ordinal type required

Os pego la línea donde da el error:

Código Delphi [-]
 if DsAux.State in [dsEdit] then

Nunca me habia pasado antes, es mas esto es un código que hice hace varias semanas... pero ahora falla

Agradeceria vuestra ayuda. Un saludo y mil gracias.
__________________
"There is nothing either good or bad, but thinking makes it so" William Shakespeare.
Responder Con Cita
  #2  
Antiguo 05-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo que hay que aclarar algunas cosas. El código que muestras parece "bien formado", empero, tú mismo dices que el problema ocurre:

Cita:
(...) cuando necesito pasar como parámetro un array sea del tipo que sea (...)
Pero, en el código que muestras no se está tratando de hacer eso. Lo que creo que ocurre es que la línea de código que has puesto es la que se "resalta" en el editor, pero, el error sucede una línea antes... por lo menos.

Así pues, insisto, el código que muestras parece correcto, en principio, y falta por ver cómo haces...

Cita:
(...) cuando necesito pasar como parámetro un array sea del tipo que sea (...)
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 05-11-2007
Avatar de Cecil
Cecil Cecil is offline
Miembro
 
Registrado: may 2007
Posts: 97
Poder: 17
Cecil Va por buen camino
Ya lo he solucionado, ha sido asi:

Código Delphi [-]
if DsAux.State in [TDataSetState(dsEdit)] then

Es decir, a las líneas que paso como parámetro, necesitan el tipo. Un saludo y mil gracias!
__________________
"There is nothing either good or bad, but thinking makes it so" William Shakespeare.
Responder Con Cita
  #4  
Antiguo 05-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pero,... lo que haces arriba es "promocionar" ("castear"...) la variable (o lo que sea) "dsEdit" para forzar (de cara al compilador) que sea tenida en cuenta como del tipo "TDataSetState". Ahora bien, ¿esto será correcto siempre? En fin... tampoco quiero yo ahora liar demasiado el asunto; tú que tienes acceso a toda la información es de suponer que sabrás lo que haces.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 05-11-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

Cuidado con ese molde de tipo ("type cast") Cecil. Si sin él, el compilador te arrojaba el error mencionado, seguramente es porque no se trataba de la constante dsEdit que todos conocemos, sino alguna otra cosa que fue nombrada con el mismo identificador.

De ser así, las consecuencias pueden ser inesperadas.

Al González.
Responder Con Cita
  #6  
Antiguo 05-11-2007
Avatar de Cecil
Cecil Cecil is offline
Miembro
 
Registrado: may 2007
Posts: 97
Poder: 17
Cecil Va por buen camino
Gracias por vuestras advertencias, la verdad esque lo he usado a la ligera si, pero necesito que no de fallo

DsAux se trata de un TpIBDataSet de las IBPlus, ¿sabeis si ese dsEdit se diferencia mucho del dsEdit TDataSetState, o si tendre muchos problemas?.
Un saludo y gracias.
__________________
"There is nothing either good or bad, but thinking makes it so" William Shakespeare.
Responder Con Cita
  #7  
Antiguo 05-11-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

Creo que no tiene que ver el componente data set. Hagamos una cosa:

Haz clic con el botón derecho sobre ese identificador "dsEdit" y elige la opción "Find Declaration". Dinos qué unidad .pas abrió el editor y muéstranos la línea de código a donde te llevó.

También dinos por favor la versión de Delphi que estás utilizando.

Gracias.

Al.
Responder Con Cita
  #8  
Antiguo 05-11-2007
Avatar de Cecil
Cecil Cecil is offline
Miembro
 
Registrado: may 2007
Posts: 97
Poder: 17
Cecil Va por buen camino
Errr... me vais a querer matar cuando os lo cuente...
El error estaba en que tenia un DataSource llamado "DsEdit", y claro el error venia de esa forma... y bueno, me ha pasado en varios sitios

Una vez mas este foro me ha salvado la vida, gracias por vuestra ayuda! Un saludo y buenas noches!
__________________
"There is nothing either good or bad, but thinking makes it so" William Shakespeare.
Responder Con Cita
  #9  
Antiguo 05-11-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

De nada. Me alegro por haberte servido mi consejo, y qué decir de David que hizo muy bien en cuestionar la falsa solución por la que habías optado inicialmente.

Saludos.

Al.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Required package 'Jcl' not found Cecil OOP 3 11-10-2007 21:01:43
BeforePost y TField.Required rafa_adrim Conexión con bases de datos 5 09-02-2006 13:47:36
Error en locate "Ordinal type requiered" ilichhernandez Conexión con bases de datos 2 13-11-2005 16:58:49
Ordinal Type Required JorgeBec Varios 2 09-03-2005 17:00:18
que significa RECORD,OBJECT OR CLASS REQUIRED cesarjbf Varios 2 07-07-2003 14:07:20


La franja horaria es GMT +2. Ahora son las 09:01:33.


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
Copyright 1996-2007 Club Delphi