Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-12-2019
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
Conocer el campo autoincremento después de hacer la inserción

cordial saludo compañeros

Tengo una aplicación, realizada en embarcadero X2, usando la base de datos Firebird 3.0. Su primer campo es un campo ID de autoincremento, donde voy a llevar los consecutivos de los registros, y necesito saber como conocer este valor después de la inserción. La tabla esta compuesta por más campos.

Usando el código SQL en el IBExpert funciona perfecto
Código SQL [-]
Insert into TABLA (valor1, valor2) values ('xxx', 'ccc') returning ID
Pero al momento de llevarlo al aplicativo usando el TSQLQuery, no hay forma de que nos de el valor ya que no reconoce la instrucción
Código Delphi [-]
ValorID:=SQLQuery.FieldByName('ID').AsInteger;

De que otra forma se podría conocer el valor del ID después de hacer la inserción.

Agradeciendo de antemano su colaboración
Responder Con Cita
  #2  
Antiguo 21-12-2019
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Eso debería funcionar correctamente. ¿El error es durante la compilación o en ejecución?. ¿Cual es exactamente el error?
Responder Con Cita
  #3  
Antiguo 21-12-2019
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
Después de solicitar, sale el error con el siguiente mensaje
Código:
Project autoincremento.exe raised  exception class eDataBaseError
 'SQLQuery: Field 'ID' not found'
Al parecer el componente TSQLQuery no devuelve la información.

Que otra solución se podría tener para afrontar este tropiezo.
Responder Con Cita
  #4  
Antiguo 21-12-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y el campo se llama ID?
Responder Con Cita
  #5  
Antiguo 21-12-2019
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Me meto donde no debería acaso... pero... ¿qué tal algo así?

Código SQL [-]
Insert into TABLA (valor1, valor2) values ('xxx', 'ccc') returning ID into :ID

... o en todo caso, comprobar que la inserción se lleva a cabo, pues, parece que, sino es así, no se retornará nada o se retornará "null".

https://firebirdsql.org/refdocs/lang...21-insert.html
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 21-12-2019
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
De antemano muchas gracias por su colaboración

En primera medida ID es el nombre del campo que se autoincrementa cada vez que hacemos la inserción con su respectivo disparador. En segunda media usando Into :ID, da error ya que desconoce el Into en esta instrucción. Si colocamos la instrucción en el IBExpert funciona perfecto, pero con el Into nos da un error.
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
como utilizo un campo con autoincremento. aurbano Tablas planas 8 26-10-2005 11:25:51
Campo autoincremento en FB Phacko Firebird e Interbase 1 02-08-2005 19:29:12
campo autoincremento para tabla con ADO VRO Conexión con bases de datos 2 06-06-2005 11:01:06
Problema al insertar con campo autoincremento predator SQL 0 23-11-2004 14:18:19
Obtener el valor de una campo autoincremento edum Conexión con bases de datos 2 26-08-2004 23:04:30


La franja horaria es GMT +2. Ahora son las 09:21:59.


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