Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2007
elvymena elvymena is offline
Miembro
 
Registrado: sep 2007
Posts: 20
Poder: 0
elvymena Va por buen camino
Interbase

Necesito saber si en Interbase puedo crear una tabla donde el campo ID es tipo Entero y se autoincremente.

Ejemplo:
ID-----*-Nombre-*
1------*-Juan
2------*-Lucas
3------*-Pedro
4------*-Maria
.
.
.
n


que el campo ID sea la misma base de datos que haga esto, espero me entiendan.
Responder Con Cita
  #2  
Antiguo 28-11-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Para crear autoincrementales en Interbase/Firebird se usan los llamados generadores...

Un pequeño ejemplo:

Código SQL [-]
create table Alumno(
  Id integer not null,
  Nombre varchar(50) not null,
  Apellidos varchar(50) not null);

alter table Alumno add constraint Alumno_PK primary key (Id);

create generator Gen_Alumno_Id;

set term ; ^
create trigger AlumnoAutoId for table Alumno
before Insert position 0
as
begin
  if (New.Id = Null) then
    New.Id = gen_id(Gen_Alumno_Id, 1);
end^
set term ^ ;


Saludos...
Responder Con Cita
  #3  
Antiguo 28-11-2007
elvymena elvymena is offline
Miembro
 
Registrado: sep 2007
Posts: 20
Poder: 0
elvymena Va por buen camino
Interbase

set term ; ^ // QUE QUIERE DECIR ESTA LINIA
create trigger AlumnoAutoId for table Alumno
before Insert position 0
as
begin
if (New.Id = Null) then
New.Id = gen_id(Gen_Alumno_Id, 1);
end^
set term ^ ; // QUE QUIERE DECIR ESTA LINIA


SALUDO ME LO PUEDES EXPLICAR ESTA LINIA DE COMANDO. SI QUEIRES ESTOY CONECTADO AL MSN. ELVYMENA@HOTMAIL.COM
Responder Con Cita
  #4  
Antiguo 28-11-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Es para establecer el caracter que va a separar el final de comando, de forma predeterminada Interbase usa el caracter ; para esto y al usar dentro de procedimientos y disparadores el mismo caracter, causa problemas...

Y se usa para que al ejecutar scripts de creación de bases de datos, los procedimientos (store procedures) y disparadores (triggers) se creen bien...


Claro, esto podría haber cambiado en las últimas versiones de Interbase/Firebird...



Saludos...
Responder Con Cita
  #5  
Antiguo 28-11-2007
elvymena elvymena is offline
Miembro
 
Registrado: sep 2007
Posts: 20
Poder: 0
elvymena Va por buen camino
Interbase

MIRA LO HICE, PERO CUANDO ESTOY EN EL MISMO INTERBASE E INSERTO UN DATO EN LA TABLA ALUMNO, ESTE NO ME COMPLETA EL CAMPO ID CON LA SECUENCIA SIGUIENTE.

AL FINAL EL CODIGO QUE ME ENVIASTE PUDE EJECUTARLO PERO DE LA SIGUEINTE MANERA.

COMO QUE DO.
create trigger AlumnoAutoId for Alumno
before Insert position 0
as
begin
if (New.Id = Null) then
New.Id = gen_id(Gen_Alumno_Id, 1);
end


EL QUE ME ENVIASTE.
set term ; ^
create trigger AlumnoAutoId for table Alumno
before Insert position 0
as
begin
if (New.Id = Null) then
New.Id = gen_id(Gen_Alumno_Id, 1);
end^
set term ^ ;
Responder Con Cita
  #6  
Antiguo 28-11-2007
elvymena elvymena is offline
Miembro
 
Registrado: sep 2007
Posts: 20
Poder: 0
elvymena Va por buen camino
Interbase

Me puedes ayudar, por que esto es muy importante que esta base de datos lo haga bien y sin problema.

Que si tengo 3 usuarios en la Red ninguno sea bloqueado por que la secuencia ha sido repetida.
Responder Con Cita
  #7  
Antiguo 28-11-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Veo que eres nuev@ en estos foros, así que te remito a la Guía de Estilo de estos foros...

No te preocupes, la secuencia dificilmente se repetirá...

Yo uso más o menos esa aproximación y hasta ahora no he tenido problemas de ningún tipo...

Ahora, como es que estás insertando alumnos nuevos a tu base de datos?

Desde una aplicación, una sentencia insert desde algún programa tipo IBExpert?


Saludos...
Responder Con Cita
  #8  
Antiguo 29-11-2007
elvymena elvymena is offline
Miembro
 
Registrado: sep 2007
Posts: 20
Poder: 0
elvymena Va por buen camino
Interbase

Saludos

Maeyanes, le pido mis mas sinceras disculpa por los error cometido, ahora a con conocimientos de ellos a al haber leido las normas del foro.

Ahora te explicare detalladamente mi problema.

Yo quiero hacer una base de datos en Interbase y como ya sabes tengo que tener una secuencia de cada uno de estos registro, por lo general estos registro se hacen secuenciales. Bien, yo lo que necesito saber como hacer una secuencia automatica en Interbase.

Yo he realizado todas tus recomendaciones paso por paso. Ahora te remito las herramientas que utilizo.

Interbase 6.0
Responder Con Cita
  #9  
Antiguo 29-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Donde dice:

if (New.Id = Null) then

debería decir:

if (New.Id is Null) then

¿no?

Ahora cuando vayas a insertar un registro, puedes hacerlo de dos formas:
Código SQL [-]
insert into AlumnoAutor (Nombre, Apellidos)
values ('Nombre1', 'Apellido1');

o bien

Código SQL [-]
insert into AlumnoAutor (id, Nombre, Apellidos)
values (null, 'Nombre1', 'Apellido1');

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #10  
Antiguo 29-11-2007
elvymena elvymena is offline
Miembro
 
Registrado: sep 2007
Posts: 20
Poder: 0
elvymena Va por buen camino
Interbase

Gracias a todos fue de mucha ayuda.

Gracias... de verdad muchas gracias...

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Necesito interbase para un programa con interbase David Conexión con bases de datos 2 20-04-2006 00:23:55
Una de Interbase Rabata SQL 4 12-02-2004 16:46:13
generador de informes interbase,interbase IBO tks1974 Impresión 0 23-12-2003 08:32:17
Se puede interbase sin interbase????? sercornejov Firebird e Interbase 11 29-08-2003 11:32:59
Paradox e Interbase, como hago para transportar todo lo de paradox a Interbase Fatima Gonzalez Firebird e Interbase 2 05-05-2003 18:02:30


La franja horaria es GMT +2. Ahora son las 14:54:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi