[Lazarus-es] definicion de un campo UNIQUE
Maximiliano Duarte
maximiliano.duarte en gmail.com
Sab Ene 21 18:55:37 CET 2017
Debes crear un indice con clave única en la tabla. Y al intentar guardar va a saltar una excepción.
Sino puedes verificar con una consulta antes de guardar.
-----Mensaje original-----
De: "hfiandor via Lazarus-es" <lazarus-es en lists.lazarus-ide.org>
Enviado el: 17/01/2017 14:28
Para: "lazarus-es en lists.lazarus-ide.org" <lazarus-es en lists.lazarus-ide.org>
CC: "hfiandor" <hfiandor en ceniai.inf.cu>
Asunto: [Lazarus-es] definicion de un campo UNIQUE
Estimados listeros>
Yo creo las tablas sqlite en una unidad DataModulo como sigue>
with fdm.tAlumnos do
begin
FileName := camino_BD + '\Clasificadores.db';
PrimaryKey := 'IdAlumnos';
if not TableExists('Alumnos') then
begin
FieldDefs.Clear;
FieldDefs.Add('IdAlumnos', ftInteger);
FieldDefs.Add('CI', ftString, 11, NOT NULL);
FieldDefs.Add('control', ftString, 10, NOT NULL );
FieldDefs.Add('primerapellido', ftString, 50);
FieldDefs.Add('segundoapellido', ftString, 50);
FieldDefs.Add('nombre', ftString, 50);
FieldDefs.Add('direccion', ftString, 80);
FieldDefs.Add('telefono', ftString, 30);
FieldDefs.Add('email', ftString, 50);
FieldDefs.Add('fechaingreso', ftString, 8);
FieldDefs.Add('grado', ftString, 10);
FieldDefs.Add('grupo', ftString, 10);
CreateTable;
end
else begin end;
AutoIncrementKey := True;
end;
y deseo que el campo ‘control’, ademas de NOT NULL sea UNIQUE.
Como se hace eso?
Leyendo correos viejos sobre CREATE TABLE usando SQL, me asalta una duda: Esto se puede hacer en el DataModulo?
Anticipándole las gracias,
Saludos
Ing. Héctor F. Fiandor Rosario
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170121/531ce0c4/attachment.html>
Más información sobre la lista de distribución Lazarus-es