Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   IbScript¿? (https://www.clubdelphi.com/foros/showthread.php?t=47041)

Io 16-08-2007 19:35:13

IbScript¿?
 
Saludos a todo el Foro.

No he podido encontrar ninguna ayuda sobre TIbscript, con lo cual estoy dando palos de ciego.
Aquí os dejo un código, haber si me podéis decir que es lo que esta mal, por que no me funciona. No me da ningún tipo de error, y la validación es correcta pues no sale el cuadro de dialogo, pero no funciona.
Código:

procedure TForm4.FormActivate(Sender: TObject);
begin

  ibT1.Params.Clear;
  ibT1.Params.Add('read_committed');
  ibT1.Params.Add('rec_version');
  ibT1.Params.Add('nowait');
  ibT1.DefaultDatabase:=dmDatos.ib_Global_Database;

  ibS1.Database:=dmDatos.ib_Global_Database;
  ibS1.Transaction:=ibT1;
end;



procedure TForm4.Button1Click(Sender: TObject);
begin
  ibS1.Script.Clear;
  ibS1.Script.Add('SET TERM ^;');
  ibS1.Script.Add('delete from CONTROL_BD^');
  ibS1.Script.Add('insert into CONTROL_BD (VER_BD)');
  ibS1.Script.Add('values('+QuotedStr('k-kk.kk.kk')+')^');
  ibS1.Script.Add('SET TERM ;^');

  ibT1.StartTransaction;

  if ibS1.ValidateScript then
    ibS1.ExecuteScript
  else
    showmessage('Error');

  ibT1.Commit;
end;

Utilizo D6,Fb15, dbx.

ibT1 -> TIBTransaction
ibS1 -> TIBScript
dmDatos.ib_Global_Database -> TIBDatabase

Esperando quedo...
Muchas gracias

egostar 16-08-2007 19:44:44

Porque no tratas con esto, tal vez si haya un error pero no lo muestra

Código Delphi [-]
  try
    IBS1.ExecuteScript;
  except
    ShowMessage('Hay un error en la ejecución');
  end;

Salud OS

Io 16-08-2007 19:55:50

Ok.
La hago ahora.

Io 16-08-2007 20:14:26

La propuest queda así:

Código:

procedure TForm4.Button1Click(Sender: TObject);
begin

  ibS1.Script.Clear;
  ibS1.Script.Add('SET TERM ^;');
  ibS1.Script.Add('delete from CONTROL_BD^');
  ibS1.Script.Add('insert into CONTROL_BD (VER_BD)');
  ibS1.Script.Add('values('+QuotedStr('k-kk.kk.kk')+')^');
  ibS1.Script.Add('SET TERM ;^');

  ibT1.StartTransaction;
  try
    IBS1.ExecuteScript;
  except
    ShowMessage('Hay un error en la ejecución');
  end;
  ibT1.Commit;
end;

El resultado es el mismo:(

:confused::confused:

egostar 17-08-2007 00:09:21

Solo una duda,

Porque estas usando un IBScript para borrar y agregar registros

No te es suficiente un Procedimiento Almacenado o un IBSQL.

Salud OS.

Io 17-08-2007 14:15:01

Hola.

Bueno este código es parte de un script, que modifica la estructura de una base de datos, es decir modificar,borrar,crear: tabla, trigger, procedimiento almacenado, etc; y en esta tabla en concreto voy guardando la versión de la base de datos, la cual consulto para ver si se encuentra actualizada.

El script que te comento, funciona correctamente desde ibExpert, pero como estoy creando un instalador , y un actualizador de la aplicación (InnoSetup), a la hora de actualizar con una nueva versión, me gustaría que tuviera la capacidad de modificar la estructura de forma automática.

Espero haber resuelto tu duda.

Saludos.

rastafarey 27-08-2007 20:00:52

Resp
 
Pruebalo quitando el set term.
Ha tambien te faltan los ; al final de cada instruccion.

-McProgramador- 03-09-2007 15:45:08

Enigma
 
Necesito que alguien me enseñe los conceptos basicos de Delphi para cuando termines los estudios poder empezar bien a programar.:D:D

¿Quien se apunta?
Que foto mas rara tienes _Io ¬¬

Emilio 03-09-2007 16:40:00

Cita:

Empezado por -McProgramador- (Mensaje 227888)
Necesito que alguien me enseñe los conceptos basicos de Delphi para cuando termines los estudios poder empezar bien a programar.:D:D

¿Quien se apunta?
Que foto mas rara tienes _Io ¬¬

McProgramador bienvenido al Club, según tengo entendido eres la segunda generación en tu familia que frecuenta el Club, aquí podrás aprender de tantísima gente que estará dispuesta a ayudarte, espero que sepas aprovecharlo, inicialmente te recomiendo la lectura de la guía de estilo, que por cierto está que da pena verla, a ver si sacamos un rato y le damos un poco más de estilo.

Lo dicho, bienvenido al Club ;)


La franja horaria es GMT +2. Ahora son las 08:58:06.

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