![]() |
crear archivo texto desde un store procedure
Hola amigos.
Estoy trabajando con FB 2.0 y Delphi6 Estoy tratando de crear, desde un procedimiento almacenado, un archivo de texto con una cantidad de registros que no han sido encontrados en una consulta. Este archivo de texto deberá contener todos los registros que no fueron encontrados en la consulta SQL... Se puede generar un archivo de texto con estos registros? Como se hace? (Ejemplos) He encontrado esto: https://firebird21.wordpress.com/tag/archivo-de-texto/ https://www.google.com/search?q=crea...t=gws-wiz-serp Pero sin éxito, he hecho lo del primer link, pero creo que mi FB 2.0 no lo soporta, al momento de compilar el SP marca este error: Cita:
O puedo crear una tabla con los campos para almacenar los registros con error y luego crear el archivo texto desde DELPHI....pero quisiera agotar la opción de crearlo desde el STORE PROCEDURE. Gracias por su tiempo. |
Haz intentado usar ese código "CREATE TABLE ERR_COMBINACIONES EXTERNAL" en un procedimiento almacenado de prueba y luego agregarle los registros de prueba directamente para ver si tu versión de firebird 2.0 lo soporta?
|
Cita:
Gracias por contestar. Pues hice SP q publiqué, pero no anda, marca error. Sería el mismo resultado si lo hago en SP de prueba como comentas. Le quité esa parte, lo compilé y funcionó, la otra alternativa es crear la tabla dentro de la B.D. firebird y llenara de registros y luego desde delphi lo ligo a un DataSet para luego exportarlo a un archivo plano, no quería hacer esto poque es modificar el EXE del sistema, pero si no hay de otra, tendré que resolverlo asi de esa manera. Saludos. |
Yo he usado en varias ocasiones tablas externas y sin ningún problema.
Aunque con firebird 2.5 en adelante. |
El problema es que no se pueden crear y borrar tablas externas desde un procedimiento.
Primero tienes que crear la tabla y luego utilizarla como si fuera una tabla más de la base de datos. Además, veo que faltan algunas comas... El script de creación sería algo así; Recuerda inicializar V_DATO en cada iteración del bucle. Si un select no encuentra registros, V_DATO no se toca y queda con el valor anterior y podría dar falsos positivos.
|
Para evitar errores con la inicialización de variables como V_DATO, yo prefiero utilizar IF EXISTS(...).
Mira si te deja compilar así:
|
Cita:
Gracias a todos por su tiempo y aportes. Muchas gracias. |
Cita:
|
Estimado mRoman, otra opción es que su procedimiento almacenada le retorne las líneas que debe contener su archivo.
Luego podrá guardar usted estas en un archivo CSV... Es solo una sugerencia mas... Saludos cordiales |
| La franja horaria es GMT +2. Ahora son las 08:58:16. |
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