Necesito importar datos de una tabla de cualquier base de datos a una en paradox ¿cómo lo puedo hacer?
1 respuesta
Respuesta de antipauli
1
1
antipauli, Analista/Programador de Sistemas Oracle
En www.torry.net escribe BatchMove en el buscador de la derecha, seleccionando Description y encontrarás herramientas útiles para ello.
Gracias por tu respuesta, pero lo que conseguí fue para importar datos desde dbase, quisiera importar datos desde cualquier otra base de datos. ¿Cómo lo hago?, ¿Puede ser una rutina? ¿O es un componente?, te agradecería me aclararas eso y si me puedes dar alguna información.
Puedes crearte una rutina que ataque a un fichero de texto exportado donde los campos estén separados por ; (por ejemplo, a elegir). Te podrías crear una pantalla en la que se definiera el separador y el tipo de los campos y por supuesto el fichero a importar. Técnicamente sería algo así: //para recorrer el fichero: var tf : textfile; linea : String; begin assignfile(tf,'fichero.txt'); reset(tf); while not eof(tf) do begin readln(tf, linea); importaregistro(linea); end; closefile(tf); end; //Para obtener los campos, trabajaríamos con funciones string procedure importaregistro(linea : String); var i : Integer; campo : String; begin i := 0; table1.append; while pos(linea,';') > 0 do begin campo := copy(linea, 1, pos(linea,';')-1); //importamos el campo según su tipo. Antes habremos llenado un array de tfieldtype con el tipo de cada campo de manera ordenada. case arrayTiposdeCampo of ftString : table1.fields.AsString := campo; ftInteger : table1.fields.AsInteger := campo; ... end; inc(i); //eliminamos del string el campo importado Delete(linea, 1, pos(linea,';')); end; table1.post; end; end; //Suponemos que cada linea está finalizada con ; sino después del while, deberíamos importar lo que quedara de linea //Para gestionar el array. En la parte private del form definimos: arrayTiposdeCampo : array of tfieldtype; Para añadirle elementos: begin //Ampliamos su tamaño en una posicion Setlength(arrayTiposdeCampo, length(arrayTiposdeCampo)); //Lo llenamos a partir de una gestión visual con cualquier componente. arrayTiposdeCampo[length(arrayTiposdeCampo)-1] := variable; (ftString, ...) end; Seguro que hay algún error pero más o menos es como lo haría.