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)
-   -   Como Convertir un dato Integer ó Float a String en FireBird???? (https://www.clubdelphi.com/foros/showthread.php?t=16610)

AGAG4 03-12-2004 20:31:02

Como Convertir un dato Integer ó Float a String en FireBird????
 
Como Convertir un dato Integer ó Float a String en FireBird????

Hay alguna instruccion para hacer eso????
ó si se puede hacer en una UDF como lo puedo hacer????

Nunca he usado UDF's pero quiero suponer que para algo sirven en relacion a los tipos de datos...

Lo que ando buscando es igual a lo que hace un FloatToStr ó IntToStr de Delphi pero lo quiero para FireBird.

Agradezco cualquier sugerencai.

marcoszorrilla 03-12-2004 20:43:40

No tengo firebird a mano, pero es muy posible que con un Cast te sirva.

Un Saludo.

AGAG4 03-12-2004 21:12:51

Me gano la respuesta pero....
 
Gracias por su respuesta tan rapida pero, ahora tengo este detalle, quiero hacer una concatenacion de datos enteros,flotantes y Strings dentro de un Trigger de esta manera:
Código SQL [-]
as
declare variable ScriptD varchar(100);
....
  ScriptD=cast(new.afectai as char)+','+new.claveart;
Pero me marca el siguiente Error:

Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Dynamic SQL Error.
expression evaluation not supported.


Como será la manera correcta de hacer concatenaciones????
Agradezco cualquier sugerencia.

kinobi 03-12-2004 21:45:45

Cita:

Empezado por AGAG4
Como será la manera correcta de hacer concatenaciones????
Agradezco cualquier sugerencia.

http://www.clubdelphi.com/foros/show...85&postcount=3

Saludos

AGAG4 04-12-2004 02:11:55

ok..pero
 
Ok hice ese tipo de concatenacion pero, el Trigger que tengo se dispara antes de hacer una inserción a cierta Tabla cuando se inserta un registro en esta misma tabla, me salta el siguiente error:

Error Message:
----------------------------------------
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
internal error.


Y deshabilite todo del trigger excepto lo siguiente:
Código SQL [-]
as
declare variable ScriptC blob SUB_TYPE 1 SEGMENT SIZE 200;
 
  ScriptC='insert into TINV_ARTICULOS' ;
  ScriptC=ScriptC||'(AFECTAI, CLAVEART, CLAVEEQU, COSTOPROM, DESART, FECFIN_PROM, FECINI_PROM,';
  ScriptC=ScriptC||'FECULTENT, FECULTSAL, GRUPO, IVA, MARCA, MEDIDA, NUMPARTE, PEDIMENTO,';
  ScriptC=ScriptC||'PRECIOLIST, PRECIOMAY, PRECIOPRO, PROMANT, TIPO, UBICA, ULTCOSTANT,';
  ScriptC=ScriptC||'ULTCOSTO, ULTFOLENT) ';

Al recompilar el Trigger no me marca el error solo cuando inserto un nuevo registro me lanza el error arriba mencionado.

Agradezco cualquier sugerencia.

AGAG4 04-12-2004 02:23:44

Ahora esto....
 
Hice la siguiente prueba, le cambie el Tipo de dato a la Variable ScriptC:
De:
declare variable ScriptC Blob....;
a
declare variable ScriptC VARCHAR(200) CHARACTER SET ISO8859_1 ;
y
declare variable ScriptC VARCHAR(200) ;

En las 2 ultimas me marca el siguiente error al insertar un registro:
Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.

Me gustaría saber en que estoy mal, ó que debo hacer para que me deje de salir tantos errores.

Agradezo cualquier sugerencia.



kinobi 04-12-2004 02:33:03

Hola,

Cita:

Empezado por AGAG4
Ok hice ese tipo de concatenacion pero, el Trigger que tengo se dispara antes de hacer una inserción a cierta Tabla cuando se inserta un registro en esta misma tabla, me salta el siguiente error:

[b]Error Message:...

Si el trigger es un BEFORE INSERT, y dentro del mismo se hace una nueva inserción sobre la misma tabla (por tu mensaje, no tengo claro si esto es realmente lo que estás haciendo), se acabará produciendo un desbordamiento de la pila, ya que provocas un bucle infinito (evidentemente, no infinito, ya que antes desbordarás la pila y se producirá el error) de llamadas recursivas al trigger que no consiguen terminarse.

Saludos.

kinobi 04-12-2004 02:40:55

Cita:

Empezado por AGAG4
a
declare variable ScriptC VARCHAR(200) CHARACTER SET ISO8859_1 ;
y
declare variable ScriptC VARCHAR(200) ;

En las 2 ultimas me marca el siguiente error al insertar un registro:
Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.

No me he puesto a contar, pero: ¿no habrás superado los 200 caracteres?

Saludos.

AGAG4 04-12-2004 02:59:47

Disculpe me hago de nuevo
 
;) Mi error era que supere los 200 caracteres pero ahora cuando hago esto:

ScriptD='values('||Cast(new.afectai as Char)||','||new.claveart;

No me guarda absolutamente nada y si solo le pongo esto:
ScriptD='values(';

Si me graba esta cadena de caracteres, siendo que los dos campos de arroba si contienen datos.

Gracias de antemano


La franja horaria es GMT +2. Ahora son las 07:46:49.

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