Cargar TXT a sql server desde power builder

Vi que le hiciste una pregunta al experto neks, de como cargar un txt a la base de datos sqlserver 2008 desde power builder el 08/06/2010, y me intereso esta pregunta por que yo también estoy haciendo ese trabajo
La diferencia es que la información de mis archivos están separados por pipes (|) pero quiero realizar lo mismo, ya tengo creado la datawindow donde voy a guardar los datos y de ahí no se si me podrías enseñar el código donde verificas los campos en el txt y utilizas la función importfile del datawindows indicando la ruta del archivo
Claro, si se pudiera

1 respuesta

Respuesta
1
Vere si comprendí bien tu pregunta...
Con GetFileOpenName puedes obtener el archivo de donde lo tengas
string path, name
GetFileOpenName("titulo_ventana", path, name, 'DOC', "Text Files (*.csv),*.csv")
En path te almacena el string de la ubicación, si solo es un archivo
en name te almacena el nombre del archivo
'DOC' es tipo de archivo
"Text Files (*.csv),*.csv", es la extension del archivo (puedes usar *.txt), me funciono con csv.
Para el importfile, debes tener cuidado que el dw tenga las mismas columnas que tu archivo, pues si hay más o menos columnas no cargara los datos.
dw_control.importfile(path)
donde path es el string completo de la ruta+nombre_archivo+extension_archivo
Cualquier duda sobre esto, puedes preguntar
A ok, de hecho si tengo lo de abrir el documento eso ya esta, y gracias por la ayuda con lo del datawindow y las columnas, pero ahora tengo otra pregunta, como tienes el código del insert para insertar la información del archivo en cada uno de las columnas correspondientes
aquí esta un ejemplo de lo que contiene el archivo
500|1|3135|9001885|430||
501|3135|9001885|430|1|T7|470||EXTR920901TS4|GOTF510925HTSNRR04|13.08250|0|0|0|0|0|10964.000|7|1|1|9|LAN 502|9001885|STE970911JX4||SUPERFICIETERRESTRE, S.A. DE CUAJIMALPA DE MORELOS, 516|9001885|CAPSANAUGUSTIN|M0141878|
503|9001885|BL-CLSAI-002318192-6|M|
Y lo que hace el programa es que lee la primera linea carácter por carácter, lee todo el numero (500) y lo que quiero es que se guarde en la tabla sdi_500 en la columna "documento" sigue la lectura y encuentra un pipe y ahí se termina un segmento sigue la lectura y el siguiente segmeto (1) se guarde en la misma tabla pero ahora en la columna id_patente y así con los demás segmentos
y quiero saber como se haría el insert
espero y me haya explicado
de antemano gracias
Continuando con la parte del archivo, la función importfile separa de la manera que deseas, cuando encuentra un Pipe(|), para ser sincero en mi caso mi archivo estaba delimitado por ',' comas, lo que veo también es que, la primer linea tiene 7 columnas y la segunda más de 10, se deben ser iguales los campos en el archivo a los del dw, si no se hace eso se genera un error.
Para lo del insert, si comprendo bien es lo de guardarlo en la bd, para ello solo le haces un update a la dw luego commit y listo se almacena en la bd.
Cualquier otra duda o consulta con gusto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas