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 23-10-2019
Punzo Punzo is offline
Miembro
 
Registrado: abr 2006
Posts: 98
Poder: 20
Punzo Va por buen camino
Usar ExecuteImmediate de IBDataBase

Buen día, tengo un problema al tratar de migrar BDE a IBX, esto es con los componentes Database e IBDatabase, tengo una líneas de código en donde el Database ejecuta Alter, Create y Drop hacia procedimientos almacenados, con un simple:

Código Delphi [-]
Database.Execute ('CREATE OR ALTER PROCEDURE... end');

He tratado de hacer básicamente lo mismo con el IBDatabase con el método ExecuteImmediate, pero me marca un error, me dice que no lo reconoce, estoy usando Delphi 2007 con Firebird 2.5, muchas gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 23-10-2019
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Podrías emplear el componente TIBScript, ejemplo de uso:
Código Delphi [-]
...
begin
  IBScript1.Database    := IBDatabase1;
  IBScript1.Transaction := IBTransaction1;
  IBScript1.Script.Add('SET TERM ^ ;');
  IBScript1.Script.Add('CREATE OR ALTER PROCEDURE FOO( AMOUNT INTEGER )');
  IBScript1.Script.Add('RETURNS( RESULT INTEGER )');
  IBScript1.Script.Add('AS');
  IBScript1.Script.Add('BEGIN');

  ... 

  IBScript1.Script.Add('  SUSPEND;')
  IBScript1.Script.Add('END^');
  IBScript1.Script.Add('SET TERM ; ^');
  IBScript1.ExecuteScript;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 23-10-2019
Punzo Punzo is offline
Miembro
 
Registrado: abr 2006
Posts: 98
Poder: 20
Punzo Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Podrías emplear el componente TIBScript, ejemplo de uso:
Código Delphi [-]
...
begin
  IBScript1.Database    := IBDatabase1;
  IBScript1.Transaction := IBTransaction1;
  IBScript1.Script.Add('SET TERM ^ ;');
  IBScript1.Script.Add('CREATE OR ALTER PROCEDURE FOO( AMOUNT INTEGER )');
  IBScript1.Script.Add('RETURNS( RESULT INTEGER )');
  IBScript1.Script.Add('AS');
  IBScript1.Script.Add('BEGIN');

  ... 

  IBScript1.Script.Add('  SUSPEND;')
  IBScript1.Script.Add('END^');
  IBScript1.Script.Add('SET TERM ; ^');
  IBScript1.ExecuteScript;
end;

Saludos
Gracias, es la alternativa, si funciona.
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
INterbase IBDATAbase canela Conexión con bases de datos 2 14-02-2015 23:15:03
Usar Varios IBQuery en un IBDatabase angel.sosa Conexión con bases de datos 20 17-12-2012 16:38:42
IBDataBase Timeout pabloc Conexión con bases de datos 0 20-06-2008 08:18:37
Conectar IBdatabase con firebird cesar_picazo Conexión con bases de datos 4 28-03-2007 01:03:48
Consultas IBDatabase - IBTransaction PALANCA Firebird e Interbase 3 29-07-2003 15:31:44


La franja horaria es GMT +2. Ahora son las 10:42:24.


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