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 03-01-2020
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Yo insisto en que el problema es que estas ejecutando la consulta con ExecSQL y deberías hacerlo con Open. Revisa la entrada #11 de este hilo.
Responder Con Cita
  #2  
Antiguo 03-01-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Insisto que un simple insert retorna el campo indicado.
Ejemplo, tenemos una tabla 'tbEjemplo' con los campos id y texto, hacemos:
Código SQL [-]
insert into tbEjemplo values (2,'hola') returning id
Retorna '2'
Código SQL [-]
insert into tbEjemplo values (5,'saludos') returning texto
Retorna 'saludos'

Y un 'insert' es 'execute', no es 'open', ya que este último es solamente para 'select'.
Responder Con Cita
  #3  
Antiguo 03-01-2020
servicomp servicomp is offline
Miembro
 
Registrado: oct 2003
Ubicación: Cartago
Posts: 153
Poder: 21
servicomp Va por buen camino
La instrucción que nos das, funciona perfectamente en la consola de Firebird o el el IBExpert, pero si lo queremos hacer en muestro programa y llevarlo a una variable, este no se puede realizar.

Me comentan compañeros que cambie a OPEN, pero cuando el procedimiento se compila, tampoco funciona. solo funciona con EXECSQL.

Exploraré la forma automática que me hicieron llegar y también la forma de un procedimiento en la Firebird que me pase la variable al programa. Esta última opción nunca la he usado, así que me tocará estudiarla primero, de como es pasar una variable que devuelve un procedimiento de la base de datos firebird a una variable entera en DElphi.

De antemano muchas gracias por toda su colaboración, y es grato saber que el delphi sigue muy vivo como lenguaje de programación.
Responder Con Cita
  #4  
Antiguo 04-01-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tengo una tabla tbDebug con los campos id, texto. El primero se autoincrementa mediante un generador y su correspondiente trigger. El segundo es un campo de texto.

En un proyecto he añadido un IBsql de los componentes IBX y el código:
Código SQL [-]
'insert into tbDebug (texto) values (:text) returning id';

He añadido un botón para ejecutarlo y, como puedes ver en el video enlazado, retorna el ID creado, como era de esperar.
Si no funciona con los componentes que estás usando, será problema de esos componentes.
Enlace a video captura.

El código es tan simple como:
Código Delphi [-]
  ibsql2.Close;
  ibsql2.SQL.Text := 'insert into tbdebug (texto) values (:text) returning id';
  ibsql2.Params[0].AsString := ed2.Text;
  ibsql2.ExecQuery;
  ed1.Text := ibsql2.Fields[0].AsString;
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 01:41:37.


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