[Lazarus-es] definicion de un campo UNIQUE

Jose Antonio Cuello jcuello en artextrading.com
Lun Ene 23 08:30:36 CET 2017


Hola, para crear tablas, y es una opinión totalmente subjetiva, mejor ejecutar el SQL que es el lenguaje de administración del motor de la base de datos. De hecho cualquier componente estoy convencido que es lo que al final realizará. 

De hecho para crearla si no existe: 

CREATE TABLE IF NOT EXISTS myTabla ( .... ) 

Además del control de existencia puedes controlar las constraints que se crean, incluso darle nombre por si necesitas operar sobre ellas, por ejemplo que quieras capturar los errores para personalizar los mensajes al usuario. 

Para SQLite tienes más información en 

http://www.sqlite.org/lang_createtable.html 

Un saludo 


De: "Rafael Bidegain via Lazarus-es" <lazarus-es en lists.lazarus-ide.org> 
Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus-ide.org> 
CC: "Rafael Bidegain" <r.bidegain en gmail.com> 
Enviados: Domingo, 22 de Enero 2017 2:21:31 
Asunto: Re: [Lazarus-es] definicion de un campo UNIQUE 

Hola Hector 
un gusto leerte siempre 


El 17 de enero de 2017, 14:31, hfiandor via Lazarus-es < lazarus-es en lists.lazarus-ide.org > escribió: 





Estimados listeros> 

Yo creo las tablas sqlite en una unidad DataModulo como sigue> 



... 


y deseo que el campo ‘control’, ademas de NOT NULL sea UNIQUE. 



Como se hace eso? 



creo que lo que estás buscando es lo siguiente 

FieldDefs.Add('control', ftString, 10, NOT NULL UNIQUE); 



BQ_BEGIN








Leyendo correos viejos sobre CREATE TABLE usando SQL, me asalta una duda: Esto se puede hacer en el DataModulo? 

BQ_END

E DataModulo es una unit como cualquier otra, deberías crear la tabla en el evento indicado (onCreate) 
haciendo un manejo apropiado de los errores. 
- si existe y está abierta 
- si existe y está cerrada 
- si no existe 
- si tenés acceso de escritura al path destino etc etc 

obviamente tenés que asegurarte que el DataModulo se cree antes que el formulario que usa la tabla 



BQ_BEGIN








Anticipándole las gracias, 

BQ_END

Un abrazo. 


BQ_BEGIN








Saludos 

Ing. Héctor F. Fiandor Rosario 

BQ_END

BQ_BEGIN


BQ_END


-- 
Rafael Bidegain 

Ya que los cuerdos no hablan, hablará el loco. 
(The Fool, Padraic Pearse) 

# yo quiero educación libre. ¡YA! 


_______________________________________________ 
Lazarus-es mailing list 
Lazarus-es en lists.lazarus-ide.org 
http://lists.lazarus-ide.org/listinfo/lazarus-es 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170123/2c96c005/attachment.html>


Más información sobre la lista de distribución Lazarus-es