Ir al contenido


Foto

[RESUELTO] Sentencias DDL en IBX


  • Por favor identifícate para responder
10 respuestas en este tema

#1 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 27 marzo 2010 - 11:44

Holas, les cuento, tengo D7 y estoy tratando de hacer un actualizador utilizando los IBX.  Estoy ocupando un IbSql para ejecutar las DDL pero se me queja cuando quiero hacer esto:



sql
  1. SET TERM ^ ;
  2.  
  3. ALTER TABLE MOVIMIENTOSBANCARIOS
  4.   ADD CONSTRAINT PK_MOVIMIENTOSBANCARIOS PRIMARY KEY   
  5.   (CODIGOCUENTA,LINEA)^
  6.  
  7. SET TERM ; ^



Me salta un error:

Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 5
TERM


Asi hago el llamado

ibSql1.ExecQuery;

PD: Si ya se que esa sentencia va perfectamente sin el SET TERM, lo coloco a manera de ejemplo ya que las sentencias que lo utilizan son mas largas y complejas.
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 27 marzo 2010 - 11:54

Hola

Para ejecutar DDL's usa el componente IBScript que es precisamente para ello.

Y lo ejecutas de esta forma:



delphi
  1.   IBScript1.Script.Clear;
  2.   IBScript1.Script.AddStrings(Memo1.Lines); // Yo uso un memo, pero puedes utilizar cualquier otra fuente.
  3.   IBScript1.ExecuteScript;



Salud OS
  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 27 marzo 2010 - 11:59

En delphi 7 no encuentro ese componente.
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 27 marzo 2010 - 12:02

En delphi 7 no encuentro ese componente.


Ah caray, checa este enlace

http://www.koders.co...7.aspx?s=parser

Salud OS
  • 0

#5 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 27 marzo 2010 - 12:12

Gracias, voy a tratar y les cuento. :cool:
  • 0

#6 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 27 marzo 2010 - 12:49

Nada, a lo que le doy .Run me lanza un access violation.

:cry:
  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 27 marzo 2010 - 02:12

Hola,
¿Que arquitectura de D7 utilizas? ¿Enterprise? ¿Personal?
Ese componente y otros más tengo entendido que no vienen de fábrica en Delphi. Al menos para D6 no. Debían adquirirse y descargarse desde el sitio de CodeGear.
No recuerdo su denominación era algo como un "Plus" o "extras" para IBX.

No se si estará disponible ahora para descarga.
Estuve buscando pero no encuentro :s. Lo máximo que he podido hallar hasta el momento es esto. Pero desconozco si en ese paquete viene con los extras.

Otra alternativa es que lo hagas vía isql o ver si alguna suite de componentes ofrece algo como el IBScrit, quizá Zeos tiene algo... no sé.

Saludos
  • 0

#8 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 27 marzo 2010 - 02:41

Sabía que en CD estaba tratado sobre esto. Aquí algo de info.

Chequea aquí amigo para ver si está disponible para D7.

Saludos,


  • 0

#9 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 29 marzo 2010 - 10:43

No pongas los SET TERM, lanza solo la consulta :

ALTER TABLE MOVIMIENTOSBANCARIOS
  ADD CONSTRAINT PK_MOVIMIENTOSBANCARIOS PRIMARY KEY   
  (CODIGOCUENTA,LINEA);

NOTA: El terminador lo he puesto como ";" que es el estándar y no el "^" que utilizamos cuando lo cambiamos con un SET TERM.

Si tienes que ejecutar varias instrucciones DDL, o bien instrucciones más complejas (como el alta de un procedimiento almacenado, que necesita obligatoriamente de cambiar el terminador) entonces te aconsejo de utilizar un componente para scripts, pero para este caso tan sencillo no te hace falta.

Saludos.
  • 0

#10 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 29 marzo 2010 - 11:12

El problema es que necesito crear los sp. Pero como el codigo es tan largo preferi colocar este de ejemplo. Voy a solucionarlo creando una dll en la maquina de un amigo que tiene el 2007 y luego la puedo utilizar en cualquier delphi.
  • 0

#11 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 13 abril 2010 - 03:52

Aquí https://downloads.em....com/Item/24267 Conseguí la actualización para los IBX en D7.

Gracias por el interés, paso a ponerlo como resuelto.
  • 0




IP.Board spam blocked by CleanTalk.