![]() |
Convertir State a tipo String
:o Hola a todos, requiero que el estado de una tabla (Tabla.State) quede guardado en un campo de tipo string para posteriormente insertarlo en una tabla que realice en Sql donde el campo "Estado" es de tipo varchar(20).
La idea es que en el campo me quede guardado dsBrowse o dsInsert o dsEdit o ds....) Como hago para poder realizar esto????, La otra opción podria estar en definir el campo donde va quedar este valor de otra forma (otro tipo que no sea varchar), para que pueda guardarlo directamente, pero no se cual. Gracias por su colaboracion. :o |
Una opción:
En el archivo DB.PAS está definido este tipo de datos para los estados del DataSet
Puedes crear un arreglo que contenga los estados en cadenas de caracteres, pero respetando el mismo orden en el que están definidos
Saludos |
Para seguir con la idea de Hector (sin meterse a los abismos de RTTI) podes declarar directamente un vector sobre el tipo enumerado:
Puede que no compile, pues no lo he probado, pero dejo la idea. Hasta luego. ;) |
Por otra parte, la instrucción Ord(Query1.State) te devuelve el índice o la posición de cada elemento dentro del arreglo, otra opción es guardar ese índice, es decir, un entero tomando en cuenta lo siguiente
[0] dsInactive [1] dsBrowse [2] dsEdit [3] dsInsert ... Saludos |
Cita:
Por otra parte, un tipo enumerado como lo es TDataSetState no es más que un escalar que puede guardarse como entero: Integer(Table.State) y recuperarse con el moldeo inverso: TDataSetState(3) En otras palabras, ¿para qué guardar el string, que ocupará más espacio? Mejor cambia el tipo de datos a INTEGER. Eso sí, me pica la curiosidad de por qué alguien querría guardar este dato en una tabla? Agrego Por cierto, en la versió jachguatiana, el arreglo
también puede ponerse así:
// Saludos |
Listolis
Listo muchas gracias a todos por su colaboracion
|
Cita:
nunca había oido cosa semejante... :D:D:D |
¡Oh! ¿Quizá debí decir jachapina? :rolleyes:
:D // Saludos |
:D:D:D muy buena!!! :D:D:D
|
La franja horaria es GMT +2. Ahora son las 10:36:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi