Script - Exportar a un fichero de texto el resultado de una consulta SQL

Creado por David Miralpeix, Modificado el Mar, 18 Jun a 9:59 A. M. por Pablo Céspedes

Ejemplos de cómo generar un fichero de texto.
Atención: El usuario que guarda debe de tener permiso de escritura en la ruta seleccionada. Se recomienda que no sea en la raíz de una unidad de disco.

 

Código VB6:

' Ejemplo con FileSystemObject
Sub Main()
     frmAux.Descargar 'ATENCIÓN: DEBE ESTAR SIEMPRE QUE NO SE MUESTRE EL FORMULARIO.

     Set fs = CreateObject("Scripting.FileSystemObject")
     Set a = fs.CreateTextFile("c:\temp\testfile.txt", True)
     lVar = "contenido de mi variable"

     a.WriteLine("This is a test l1.")
     a.WriteLinelVar & ";A;" & lVar )
     a.WriteLine("This is a test l3.")
     a.Close

End Sub
'Ejemplo con funciones de la librería ahoraUtil, esta vez utilizando un recordset
Sub Main()
      frmAux.Descargar

      Set lObj = CreateObject("AhoraUtil.CUtil")

      lpath = "C:\Compartida\"
      lcliente = InputBox("Nombre Cliente:")

      lSQL = "SELECT * from Pantallas_Configuracion_Scripts"

     Set lr1 = gcn.OpenResultSet (lSQL,2,3)
     Do While Not lr1.EOF
     lCadFile = CStr(lr1("Codigo"))
     lfichero = lcliente & " - " & CStr(lr1("Pantalla"))
     lObj.GuardaFichero lpath & lfichero & ".txt",CStr(lCadFile)
     lr1.MoveNext
     Loop

     MsgBox "Extracción terminada " & lpath
End Sub


Código C#:

// Ejemplo con clase File
using System.IO;

namespace AhoraScriptsVacia
{
    public class Script_61 : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
            StreamWriter lFichero = File.CreateText("C:\\TEMP\\testfile.txt");

            string lVar = "Contenido de mi variable";
            lFichero.WriteLine("Línea 1");
            lFichero.WriteLine(lVar + ";A;" + lVar);
            lFichero.WriteLine("Línea 3");

            lFichero.Close();

        }
    }
}
// Ejemplo con funciones de la librería AhoraUtil, esta vez utilizando un recordset
using AhoraSistema;
using static AhoraUtil.CUtil;
using static AhoraCore.VBA.Interaction;

namespace AhoraScriptsVacia
{
    public class Script_62 : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
            string lPath = "C:\\TEMP\\";
            string lCliente = InputBox("Nombre Cliente:");

            string lSQL = "SELECT * FROM Pantallas_Configuracion_Scripts";

            IRecordSet lR1 = gCn.OpenResultSet(lSQL);
            while (!lR1.EOF)
            {
                string lCadFile = lR1["CodigoNet"].Value;
                string lFichero = lCliente + " - " + lR1["Pantalla"].Value;
                GuardaFichero(lPath + lFichero + ".txt", lCadFile);
                lR1.MoveNext();
            }

            MsgBox("Extracción terminada: " + lPath);

        }
    }
}

En Ahora 5 se ha añadido un parámetro nuevo para determinar la codificación del fichero a crear. Por ejemplo, para los ficheros a enviar para intercambios de información (EDI), se aconseja crear los archivos en formato UTF-8 sin BOM.

Un ejemplo de cómo hacerlo:


Código C#:

using AhoraCore;
using AhoraOCX;
using AhoraSistema;
using static AhoraCore.VBA.Interaction;
using static AhoraCore.VbMsgBoxResult;
using static AhoraCore.VbMsgBoxStyle;
using System;
using System.IO;
using System.Text;

namespace AhoraScriptsVacia
{
    public class Script_17 : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
            string t1 = "hola";
            string t2 = "mundo";

            IFileSystemObject fs = AhoraCore.AhoraServiceLocator.Current.GetService<AhoraCore.IFileSystemObject>();
            ITextStream edi = fs.CreateTextFile(@"C:\Prueba.txt", new UTF8Encoding(false), true);
            edi.WriteLine(t1 + @"#" + t2);
            edi.Close();
        }
    }
}

¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo