[Lazarus-es] Ayuda con fielddefs

Maxi maximiliano.duarte en gmail.com
Mie Mar 4 19:24:23 CET 2015


El día 4 de marzo de 2015, 14:08, Juan Perles <perlesj en gmail.com> escribió:
> Sí, mi problema es que estoy empezando con Lazarus. Cuando te decía que no
> sabía si era el sitio correcto de utilizar 'Required' era porque había visto
> en el apartado 'how to write in-memory  database aplications' que allí usan
> ese parámetro. Pero yo no quería definir una tabla virtual sino una tabla
> real y con FieldDefs no me funcionaba el NOT NULL. Pero lo conseguí con una
> sentencia SQL.
> No obstante gracias por echarme una mano.
>
> Juan Perles
> 628.482.007
> Enviado desde mi iPad
>
> El 3/3/2015, a las 15:15, Victor Villalobos <revxfire en gmail.com> escribió:
>
> Lo que te hemos mencionado anteriormente es que alli no estas creando una
> tabla solo estas agregando campos al dataset, pero esos campos serian
> VIRTUALES, no modificarian la DB, para crear tu tabla tendrias que ejecutar
> una sentencia SQL, como la mencionada anteriormente, luego de realizar esto
> ya puedes agregar tus campos a tu dataset, o llamarlos mediante:
>
> DataSet.FieldByName('Campo').AsString :='Hola';
>
> Creo que tu problema es mas de programacion general en delphi.
>
> El 3 de marzo de 2015, 7:29, Juan Perles <perlesj en gmail.com> escribió:
>>
>> Víctor, perdona la tardanza en contestarte pero estuve de viaje.
>> Lo he probado, pero me da error o no es esta la sintaxis o lo hago en el
>> sitio equivocado.
>> La sentencia que utilizo es la siguiente:
>>           dataset.FieldDefs.Add ('id',ftInteger,2,Required);
>> Me da el error: 'Identifier not found 'Required'.
>> ¿Me podrías dar un ejemplo de crear una tabla con tan sólo un campo?
>> Gracias por tus molestias.
>>
>>
>> Juan Perles
>> 628.482.007
>> Enviado desde mi iPad
>>
>> El 23/2/2015, a las 23:40, Victor Villalobos <revxfire en gmail.com>
>> escribió:
>>
>> Tambien puedes usar la propiedad "Required" del Field.
>>
>> El 4 de febrero de 2015, 12:48, Maxi <maximiliano.duarte en gmail.com>
>> escribió:
>>>
>>> El día 3 de febrero de 2015, 19:54, Juan Perles <perlesj en gmail.com>
>>> escribió:
>>> > Estoy creando una tabla en "runtime" y quiero crear una columna que sea
>>> > un entero  y que no pueda tener valores nulos. Para ello utilizo la
>>> > siguiente sentencia:
>>> >          FieldDefs.Add ('Numero',ftInteger,4,True)
>>> > Me crea la columna pero no pone NOT NULL.
>>> >
>>> > La base de Datos que estoy utilizando es Sqlite3.
>>> >
>>> > He estado buscando información sobre fttype pero no he encontrado nada.
>>> >
>>> > Otra posibilidad que he barajado es utilizar directamente sentencias
>>> > SQL pero tampoco he encontrado información.
>>> >
>>> > Cualquier ayuda será bien recibida. Muchas gracias de antemano.
>>> >
>>> > Juan Perles
>>> > 628.482.007
>>> > Enviado desde mi iPad
>>> > _______________________________________________
>>> > Lazarus-es mailing list
>>> > Lazarus-es en lists.lazarus.freepascal.org
>>> > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>>>
>>> los nulos lo manejas desde la tabla al crearla tan simple como
>>>
>>> CREATE TABLE [nuevatabla] (
>>> [campo1] INTEGER  NOT NULL,
>>> [campo2] VARCHAR(200)  NULL
>>> )
>>>
>>> es un estandar SQL, por lo que se hace igual en cualquier motor.
>>>
>>> en lazarus usas las constraint
>>>
>>> http://lazarus-ccr.sourceforge.net/docs/fcl/db/tfield.customconstraint.html
>>> Pero no por lo que dice la wiki no está implementado aun.
>>>
>>> --
>>> El que pregunta aprende, y el que contesta aprende a responder.
>>>
>>> No a la obsolecencia programada:
>>>
>>> http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml
>>>
>>> Linux User #495070
>>> http://domonetic.com/blog
>>>
>>> _______________________________________________
>>> Lazarus-es mailing list
>>> Lazarus-es en lists.lazarus.freepascal.org
>>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>>
>>
>>
>>
>> --
>> Victor Villalobos
>> Bahia Pirata
>> Inversiones Villalobos Balzan.
>> 0412 6882141
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>>
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>>
>
>
>
> --
> Victor Villalobos
> Bahia Pirata
> Inversiones Villalobos Balzan.
> 0412 6882141
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>

aca tenes para crear tablas en memoria y como pasarlas a reales.

Pero tu pregunta se resuelve como te explique en principio. Creando la
tabla desde tu aplicacion ejecutando la sentencia SQL.
Las restricciones las pones en la base y te las toma automaticamente.

-- 
El que pregunta aprende, y el que contesta aprende a responder.

No a la obsolecencia programada:
http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml

Linux User #495070
http://domonetic.com/blog




More information about the Lazarus-es mailing list