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)
-   -   Argumentos en procedimientos (https://www.clubdelphi.com/foros/showthread.php?t=8039)

Carlitos 05-03-2004 11:57:53

Argumentos en procedimientos
 
Porqué siempre que he de pasar una constante de tipo string como argumento de un procedimiento almacenado he de pasarla en una variable para que no aparezcan unas comillas de más que hacen que no sea el valor que deseaba pasar. ¿Cómo debería pasar dicha constante para no tener que usar una variable intermedia?

teletranx 05-03-2004 15:17:07

:D Por lo que entendi

puede hacer lo siguiente
  • Desde otro sp
execute procedure <nombresp> 'string';
o

declare variable var1 varChar(10);


Var1 = 'string';

execute procedure <nombresp> :Var1; (Lo He usado )


Juan carlos

jachguate 05-03-2004 19:01:29

Desde Delphi??

Tal como lo harias con una variable, pero la tenes declarada en la sección const

Hasta luego

;)

Carlitos 06-03-2004 11:34:19

No me refería a eso, sino a invocar el procedimiento almacenando desde otro procedimiento o disparador. Por ejemplo:

execute procedure dame_resultado('A');

donde el argumento está definido como char(1). Dentro del procedimiento al comparar el parámetro con 'A':

...
if (argumento='A') then
...

la comparación me devuelve false ya que el argumento me lo entiende como ''A''. La única forma que he encontrado de solucionarlo es declarando una variable del mismo tipo char(1) asignarle 'A' e invocar el procedimiento con dicha variable no con la constante. Mi pregunta es si hay alguna forma de hacerlo sin tener que utilizar dicha variable intermedia y por supuesto, intentar comprender el porqué lo hace así...


La franja horaria es GMT +2. Ahora son las 03:00:45.

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