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)
-   -   Ejemplos IBScript (https://www.clubdelphi.com/foros/showthread.php?t=21443)

subzero 17-05-2005 22:17:25

Ejemplos IBScript
 
Hola amigos y amigas del foro.

Mi pregunta es muy sencilla alguien sabe donde puedo encontrar ejemplos donde muestren el manejo de IBScript, ya he realizado busquedas y he entrado a la página de la Borland pero no he localizado nada.


Me genera un error donde me dice que la propiedad Terminator no existe


Si pueden ayudame les estare muys agradecido.

AGAG4 19-05-2005 01:51:40

checa esto....
 
La propiedad Terminator te indica el simbolo con que terminará el Script, yo lo dejo en punto y coma ( ; ) si no lo tiene al final del script te marca el error....

Saludos.

subzero 19-05-2005 15:36:41

Entendido pero como logro generar un procedimiento almacenado el cual debe devolver algún valor? por ejemplo

Código:

..........
with IBScript1 do
begin
    Script.Clear;
    Script.Add('SET TERM ^;');
    Script.Add('CREATE PROCEDURE PROCEDIMIENTO_PRUEBA');
    Script.Add('AS DECLARE VARIABLE CODANE VARCHAR(16);');
    Script.Add('DECLARE VARIABLE NOMBRE VARCHAR(100);');
    Script.Add('AS BEGIN');
    Script.Add('SELECT CODIGO_DANE, ESTAB_NOMBRE');
    Script.Add('FROM ESTABLECIMIENTOS');
    Script.Add('INNER JOIN NUCLEOS ON (ESTAB_NUC_NUMERO=NUC_NUMERO)');
    Script.Add('INNER JOIN SECRETARIAS ON (NUC_SEC_CODIGO=SEC_CODIGO)');
    Script.Add('INNER JOIN MUNICIPIOS ON (SEC_MUN_CODIGO=MUN_CODIGO)');
    Script.Add('WHERE (MUN_CODIGO = ''70001'')');
    Script.Add('FOR SELECT ESTAB_CODIGO_DANE, ESTAB_NOMBRE');
    Script.Add('FROM ESTABLECIMIENTOS');
    Script.Add('INNER JOIN NUCLEOS ON (ESTAB_NUC_NUMERO=NUC_NUMERO)');
    Script.Add('INNER JOIN SECRETARIAS ON (NUC_SEC_CODIGO=SEC_CODIGO)');
    Script.Add('INNER JOIN MUNICIPIOS ON (SEC_MUN_CODIGO=MUN_CODIGO)');
    Script.Add('WHERE (MUN_CODIGO = ''70001'')');
    Script.Add('INTO :CODANE, :NOMBRE DO');
    Script.Add('BEGIN');
    Script.Add('UPDATE TEMP_EVAL_INT_GRAF_ADMIN');
    Script.Add('SET ESTAB_NOMBRE = :NOMBRE');
    Script.Add('WHERE CODIGO_DANE =:CODANE;');
    Script.Add('SUSPEND;');
    Script.Add('END^');
    Script.Add('SET TERM ;^');
end;
IBScript1.ExecuteScript;
..........


AGAG4 19-05-2005 16:49:05

ok
 
Quieres CREAR ó LLAMAR un Proc. Almacenado ????
Por lo que veo quieres crearlo, pero tengo entendido que no es de esa forma para hacerlo para crear un store procedure yo lo hago por medio del IBExpert puedes bajartelo en www.ibexpert.com y si quieres llamarlo en la paleta de Interbase de delphi viene un componente ibStoredProc aqui puedes mandar a llamarlo.

Saludos....

rastafarey 19-05-2005 17:15:04

resp
 
Aqui tienes un ejemplo

http://www.clubdelphi.com/foros/showthread.php?t=21477

Y para llamarlo simplemente has un select como si lo hiciera sobre uan tabla y si recibe prametro pasales en la llamada
ejlp
Código SQL [-]
  Select c1, c2 From Sp1(1, 2);

subzero 19-05-2005 17:17:32

Si te entiendo, crearlo en la misma base de datos ya sea con el IBConsole, EMS, IBExpert, con cualquier programa que te permita crearlo, pero el problema es crearlo en tiempo de ejecución he alli el dilema ;)

Gracias-

rastafarey 19-05-2005 17:19:39

resp
 
Mira es este es mi msn yahoo
estoy en linea

[email protected]

Te espero dale rapidito que tengo trabajo

subzero 19-05-2005 19:00:33

Lo soluciones agregandole :

Params.Clear;
ParamCheck := false;
ExecSQL;

a un IBQuery.

Código:

with IBQuery1 do
 begin
    sql.Clear;
    sql.Add('CREATE PROCEDURE PROCEDIMIENTO_PRUEBA');
    sql.Add('AS DECLARE VARIABLE CODANE VARCHAR(16);');
    sql.Add('DECLARE VARIABLE NOMBRE VARCHAR(100);');
    sql.Add('AS BEGIN');
    sql.Add('SELECT CODIGO_DANE, ESTAB_NOMBRE');
    sql.Add('FROM ESTABLECIMIENTOS');
    sql.Add('INNER JOIN NUCLEOS ON (ESTAB_NUC_NUMERO=NUC_NUMERO)');
    sql.Add('INNER JOIN SECRETARIAS ON (NUC_SEC_CODIGO=SEC_CODIGO)');
    Script.Add('INNER JOIN MUNICIPIOS ON (SEC_MUN_CODIGO=MUN_CODIGO)');
    sql.Add('WHERE (MUN_CODIGO = ''70001'')');
    sql.Add('FOR SELECT ESTAB_CODIGO_DANE, ESTAB_NOMBRE');
    sql.Add('FROM ESTABLECIMIENTOS');
    sql.Add('INNER JOIN NUCLEOS ON (ESTAB_NUC_NUMERO=NUC_NUMERO)');
    sql.Add('INNER JOIN SECRETARIAS ON (NUC_SEC_CODIGO=SEC_CODIGO)');
    sql.Add('INNER JOIN MUNICIPIOS ON (SEC_MUN_CODIGO=MUN_CODIGO)');
    sql.Add('WHERE (MUN_CODIGO = ''70001'')');
    sql.Add('INTO :CODANE, :NOMBRE DO');
    sql.Add('BEGIN');
    sql.Add('UPDATE TEMP_EVAL_INT_GRAF_ADMIN');
    sql.Add('SET ESTAB_NOMBRE = :NOMBRE');
    sql.Add('WHERE CODIGO_DANE =:CODANE;');
    sql.Add('SUSPEND;');
    sql.Add('END');
    Params.Clear;
    ParamCheck := false;
    ExecSQL;
end;

Estoy abierto a cualquier otra sugerencia.....


La franja horaria es GMT +2. Ahora son las 02:44:45.

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