Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2017-01

definicion de un campo UNIQUE

12 messages · 8 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

hfiandor

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/20170117/a7ee32a7/attachment.html>

Reply by email

Jose Antonio Cuello
to hfiandor

Creo que te sería más sencillo montar una SQL y ejecutarla directamente con un TQuery

Algo así, voy de memoria ...

myQry := TQuery.Create();
myQry.SQL.Text := 'CREATE TABLE ......'
myQry.Exec

De: "hfiandor via Lazarus-es" <lazarus-es en lists.lazarus-ide.org> Para: lazarus-es en lists.lazarus-ide.org
CC: "hfiandor" <hfiandor en ceniai.inf.cu>
Enviados: Martes, 17 de Enero 2017 18:31:06
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

Reply by email

Maximiliano Duarte
to hfiandor: Estimados listeros> Yo creo las tablas sqlite en una unidad DataModulo como sigue> with…

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.

Earlier message 59 lines
-----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>

Reply by email

Rafael Bidegain
to hfiandor: Estimados listeros> Yo creo las tablas sqlite en una unidad DataModulo como sigue> with…

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> wrote 14 lines
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);
Leyendo correos viejos sobre CREATE TABLE usando SQL, me asalta una duda: Esto se puede hacer en el DataModulo?

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

Anticipándole las gracias,

Un abrazo.

Show quoted text 8 lines
Saludos Ing. Héctor F. Fiandor Rosario
Rafael Bidegain Ya que los cuerdos no hablan, hablará el loco. (The Fool, Padraic Pearse) # yo quiero educación libre. ¡YA! ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170121/fe02de15/attachment.html>

Reply by email

Jose Antonio Cuello
to Rafael Bidegain

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!

Reply by email

Rafael Bidegain
to Jose Antonio Cuello

El 23 de enero de 2017, 4:30, Jose Antonio Cuello via Lazarus-es

<lazarus-es en lists.lazarus-ide.org> wrote 5 lines
... Para SQLite tienes más información en http://www.sqlite.org/lang_createtable.html

Hector, te puedo enviar la documentación por email.

http://www.sqlite.org/download.html
sqlite-doc-3160200.zip (5.27 MiB) Documentation as a bundle of static HTML files.
(sha1: c3424040e2368dd78cf9aac801de8d8988549439)

son 5 algo mas de 5 megas, si no lo podés recibir como está te la envío en varios archivos (decime el tamaño)

saludos

Rafael Bidegain

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

# yo quiero educación libre. ¡YA!

Reply by email

hfiandor
to Rafael Bidegain

Estimado Rafael y José Antonio Cuello, muchas gracias. Ya tengo la documentación.

La ví y aunque me asusta un poco, voy a ensayarla en la próxima aplicación, en lugar de usar la forma "clásica" que siempre utilizo.

También tengo que usar declarar un campo UNIQUE, para evitar duplicidades. Voy a ensayarlos.

Saludos
Ing. Héctor F. Fiandor Rosario

Reply by email

José Manuel Jover
to hfiandor

Buenos dias:

Estoy intentando instalar las RX para lazarus 1.6.2 en linux, pero no encuentro de donde bajarlas.

¿Alguien me puede enviar algun enlace?

Las he conseguido para la version 1.5 pero al intentar instalarlas en la 1.6 dan errores y no se instalan

Gracias
Saludos
J.M.

Reply by email

Maxi
to José Manuel Jover

http://wiki.freepascal.org/RXfpc

dejó de tener soporte hace mucho

El 26 de enero de 2017, 9:38, José Manuel Jover via Lazarus-es <

lazarus-es en lists.lazarus-ide.org> wrote 19 lines
Buenos dias: Estoy intentando instalar las RX para lazarus 1.6.2 en linux, pero no encuentro de donde bajarlas. ¿Alguien me puede enviar algun enlace? Las he conseguido para la version 1.5 pero al intentar instalarlas en la 1.6 dan errores y no se instalan Gracias Saludos J.M. _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus-es
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 ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170126/02dcce16/attachment.html>

Reply by email

José Manuel Jover
to Maxi

Buenas tardes:

¿Pero la ultima version de las rx se puede instalar en lazaruz 1.6.2?

De: Lazarus-es [mailto:lazarus-es-bounces en lists.lazarus-ide.org] En nombre de Maxi via Lazarus-es Enviado el: jueves, 26 de enero de 2017 13:51
Para: Spanish version of Lazarus List
CC: Maxi
Asunto: Re: [Lazarus-es] rx para lazarus

http://wiki.freepascal.org/RXfpc
dejó de tener soporte hace mucho

El 26 de enero de 2017, 9:38, José Manuel Jover via Lazarus-es <lazarus-es en lists.lazarus-ide.org<mailto:lazarus-es en lists.lazarus-ide.org>> escribió: Buenos dias:

Estoy intentando instalar las RX para lazarus 1.6.2 en linux, pero no encuentro de donde bajarlas.

¿Alguien me puede enviar algun enlace?

Las he conseguido para la version 1.5 pero al intentar instalarlas en la 1.6 dan errores y no se instalan

Gracias
Saludos
J.M.

Reply by email

Carlos Enrique Rodriguez
to José Manuel Jover
José Manuel Jover wrote 5 lines
Buenas tardes: ¿Pero la ultima version de las rx se puede instalar en lazaruz 1.6.2?

Hola,
Yo las tengo andando sin problemas en mi Lazarus 1.6. No recuerdo si tuve que hacer algún cambio en el código la vez que las instalé (las uso desde hace mucho).
No se para qué las necesitas, pero si el error está en algún componente en particular o propiedad que no necesitas para tu proyecto, podés quitársela y compilar Lazarus sin problema. Sino deberías ser un poco más específico con el error que te muestra para así ver por dónde está el problema.

Saludos
Carlos
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170126/bd9dc0e4/attachment.html>

Reply by email

Alexis Ramos
to José Manuel Jover: Buenas tardes: ¿Pero la ultima version de las rx se puede instalar en lazaruz 1.6.2? De:…

Buenas tardes

En el repositorio de Lazarus-CCR se encuentra el paquete rxnew, cuya última modificación es de hoy mismo (aunque desconozco las diferencias con el que tú intentas instalar). Yo tengo instalada la versión 2.9.4 en Lazarus 1.7, por lo que no creo que tengas problemas si quieres instalarla en la 1.6.2

Saludos
Alexis Ramos

José Manuel Jover wrote 84 lines
Buenas tardes: ¿Pero la ultima version de las rx se puede instalar en lazaruz 1.6.2? De: Lazarus-es [mailto:lazarus-es-bounces en lists.lazarus-ide.org] En nombre de Maxi via Lazarus-es Enviado el: jueves, 26 de enero de 2017 13:51 Para: Spanish version of Lazarus List CC: Maxi Asunto: Re: [Lazarus-es] rx para lazarus http://wiki.freepascal.org/RXfpc dejó de tener soporte hace mucho El 26 de enero de 2017, 9:38, José Manuel Jover via Lazarus-es <lazarus-es en lists.lazarus-ide.org> escribió: Buenos dias: Estoy intentando instalar las RX para lazarus 1.6.2 en linux, pero no encuentro de donde bajarlas. ¿Alguien me puede enviar algun enlace? Las he conseguido para la version 1.5 pero al intentar instalarlas en la 1.6 dan errores y no se instalan Gracias Saludos J.M. _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus-es -- 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-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/20170126/2b06f0bb/attachment-0001.html>

Reply by email