importar base dbf

841 views
Skip to first unread message

cesar barcia

unread,
Jan 23, 2013, 7:28:19 PM1/23/13
to Grupo PHP Argentina
Hola gente como estan?

Necesito si me pueden orientar con este tema de pasar los datos de
unas tablas qu me pasaron en .dbf a mysql como podria hacer esto?

Cualquier ayuda me viene bien estoy en cero con esto.

Saludos.

Joel Alejandro Villarreal Bertoldi

unread,
Jan 23, 2013, 8:32:39 PM1/23/13
to php...@googlegroups.com
Cesar, ¿cómo estás?,

PHP tiene disponible una extensión para trabajar con dBase. La podés descargar desde pecl: http://pecl.php.net/package/dbase

Tendrías que crear en una base MySQL la misma estructura (en términos de tablas y campos).

Con un script siguiendo esta idea podrías resolverlo (es un ejemplo burdo, se debería hacer con PDO o al menos MySQLi, pero es para que captes la idea):

<?php

mysql_connect("localhost", "usuario", "password");
mysql_select_db("base_mysql");

// abrir en modo sólo lectura
$db dbase_open('/tmp/test.dbf'0);

if (
$db) {
  // Iterar registros
  
$número_registros dbase_numrecords($db);
  for (
$i 1$i <= $número_registros$i++) {

      // Leer fila
      
$fila dbase_get_record_with_names($db$i);
 
      // Generar insert SQL por cada fila    
      $sql = "insert into nombre_tabla (" . implode(", ", array_keys($fila)) . ") ";
      $values = array();
      foreach ($fila as $value) {
         $values[] = "'$value'";
      }
      $sql .= implode(", ", $values) . ")";
      mysql_query($sql);
  }
}
?>


Puede pasarte que PHP no reconozca la base (funciona con versiones específicas de dBase), en la referencia de PHP hay posibles soluciones a eso.

Espero esta info te sea útil.

Saludos!

D.G. Joel A. Villarreal Bertoldi
Desarrollo • Infraestructura | moobin.net



--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.


Juan Rodríguez Monti

unread,
Jan 24, 2013, 2:35:27 AM1/24/13
to php...@googlegroups.com
El 23 de enero de 2013 21:28, cesar barcia <cesa...@gmail.com> escribió:
Hola César, Cómo estás?.

Tengo mucha experiencia con esto, ya que tuve que migrar bases dbf realmente grandes. Y suele dar problemas con la codificación.

Lo que hacia en su momento, ahora hace mucho que no trabajo con PHP ( pero esto puede servirte para cualqueir lang ), era utilizar un programa que se llama DBFEditor.

Ese programa lo usaba para elegir qué exportar, y de ahí me lo llevaba a una hoja de cálculo o archivo .CSV, y de allí lo metia - con un poco de trabajo - en la base de datos mayormente MySQL.

Por experiencia te digo que vas a putear un poco. Y por experiencia también te digo que esa fórmula que menciono ahí es la que menos dolores de cabeza me dió.

Juan
-- 
Juan Rodríguez Monti

Blog: http://www.juanrodriguezmonti.com.ar
Twitter: @jrodriguezmonti

Jorge Pérez Valdivia

unread,
Jan 24, 2013, 10:55:25 AM1/24/13
to php...@googlegroups.com
Hola yo desarrolle una pequeña aplicación en clipper 5.0 para hacerlo, pero
necesito saber si tienes el compilador para generarlo. Tienes que acomodarlo
según la definición de tus tablas dbf y de como quieres que quede en mysql,
pero se entiende inmediatamente, aquí va el código:



************************************************
USE VENTD001

SET PRINTER ON
SET DEVICE TO PRINTER
SET CONSOLE OFF
SET PRINTER TO ventd001.sql

AutoIncrementa := 1

DO WHILE LASTKEY() <> 27 .AND. !EOF()

? [INSERT INTO `TU_BASE_MYSQL`.`maestrosclienteproveedor` (
]+;
[`rut`, `fech`, `parq`, `razonsocial`, `sexo`, `fena`,
`civi`, `matr`, `depe`, `anti`, `direccion`, `nume`, `bloc`, `dept`, ]+;
[`ubic`, `comuna`, `ciudad`, `telefonos`, `region`, `prof`,
`naci`, `educ`, `vivi`, `avvi`, `auto`, `avau`, `otro`, `post`, `envi`,
`come`, `ticl`, `nrco`, `seri`, `marc` ) ]+;
[ VALUES ( ] +;
[']+ALLTRIM( VENTD001->VENT01RUTC ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01FECH ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01PARQ ) + [', ]+;
[']+STRTRAN( ALLTRIM( VENTD001->VENT01PATE ) + [ ] +
ALLTRIM( VENTD001->VENT01MATE ) + [ ] + ALLTRIM( VENTD001->VENT01NOMB ),
['], CHR(32) ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01SEXO ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01FENA ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01CIVI ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01MATR ) + [', ]+;
[']+alltrim( str( VENTD001->VENT01DEPE ) ) + [', ]+;
[']+alltrim( str( VENTD001->VENT01ANTI ) ) + [', ]+;
[']+ALLTRIM( STRTRAN( STRTRAN( VENTD001->VENT01DOMI, ['],
CHR(32) ), CHR(248), [o] ) ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01NUME ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01BLOC ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01DEPT ) + [', ]+;
[']+ALLTRIM( STRTRAN( STRTRAN( VENTD001->VENT01UBIC, ['],
CHR(32) ), CHR(248), [o] ) ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01COMU ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01CIUD ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01FONO ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01REGI ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01PROF ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01NACI ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01EDUC ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01VIVI ) + [', ]+;
[']+alltrim( str( VENTD001->VENT01AVVI ) ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01AUTO ) + [', ]+;
[']+alltrim( str( VENTD001->VENT01AVAU ) ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01OTRO ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01POST ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01ENVI ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01COME ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01TICL ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01NRCO ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01SERI ) + [', ]+;
[']+ALLTRIM( VENTD001->VENT01MARC ) + [' ]+;
[ );]


AutoIncrementa += 1
IF AutoIncrementa > 10000
EXIT
ENDIF
DBSKIP()

ENDDO


SET CONSOLE ON
SET DEVICE TO SCREEN
SET PRINTER OFF
SET PRINTER TO
***************************************************************

Solo indicarte que el archivo que genera debe ser insertado en la tabla,
pero si supera los 3000 registros, se pone lenta la carga, quizá debas
configurar el archivo de phpMyAdmin, en la línea de tiempo de espera y
cambiarlo de 300 a 0, o sea sin poner restricción de tiempo de carga de la
información.

Cualquier consulta, me indicas, chao.

-----Mensaje original-----
De: php...@googlegroups.com [mailto:php...@googlegroups.com] En nombre de
cesar barcia
Enviado el: miércoles, 23 de enero de 2013 21:28
Para: Grupo PHP Argentina
Asunto: [php-arg] importar base dbf

cesar barcia

unread,
Jan 28, 2013, 7:01:51 AM1/28/13
to php...@googlegroups.com
Hola a todos...
no me puedo quejar como siempre en el grupo unos grosos muchas gracias por sus respuestas me dieron tres alternativas para hacerlo, se los agradezco.

Por lo pronto opte por usar el soft DBF VIEWER 2000(como una posibilidad que me dieron) y exporte algunas tablas a un archivo .sql qu no es mas que una sentencia INSERT por registro de esa tabla, queda solo crear la tabla en mysql con esos campos y ejecutar las sql.

voy a probar lo demas que me dijeron y comentare cualquier tema, pero mil gracias por sus ayudas.

SAludos!

Enrique Astete Baldeón

unread,
Jul 23, 2014, 1:49:37 PM7/23/14
to php...@googlegroups.com
Saludos, esta es la primera vez que intervengo en este grupo y, aunque sé que el post es de hace más de un año, tal vez podrían responder a una duda que tengo. Este script que publicaste es el que uso en todas mis aplicaciones web para migrar los DBF a MySQL, sin embargo, no sé cómo hacer para que sólo migre algunos datos y no toda la tabla DBF, es decir, cómo hacer la consulta a la tabla DBF antes de migrarla. Investigué y no encuentro cómo realizar una consulta en DBF para luego migrar el resultado a MySQL. Muchas gracias anticipadas por la respuesta.

Pablo Z - Medaneros

unread,
Jul 23, 2014, 2:10:59 PM7/23/14
to php...@googlegroups.com
Las DBF no se pueden consultar... a no ser que tengas un soft especial de consulta sobre DBF.
Te recomiendo exportarla a CSV... abrirla con Excel, borrar las columnas que no quieras, volver a guardarla en CSV, y luego editarla para generar el script de insert en MySQL....
Si necesitas, hice un soft que abre la tabla DBF y te genera un SQL, avisame que te lo paso.

Saludos.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a php-arg+u...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a php...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/php-arg.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Enrique Astete Baldeón

unread,
Jul 24, 2014, 12:32:57 AM7/24/14
to php...@googlegroups.com
Hola Medaneros, gracias por tu respuesta, pero no es lo que necesito. Exportarlo a CSV es una tarea manual y lo que deseo es que la migración sea automática ya que no siempre voy a estar para poder actualizar el DBF vía CSV. Me explico mejor. En el trabajo hay un sistema antiguo que utiliza tablas DBF en las que se almacenan los datos. Pero a mí me han encargado hacer varias aplicaciones web que usen esas tablas como fuente de datos. Algunas no tengo problemas en usarlas, uno porque son pequeñas y este script PHP lo hace muy eficientemente, dos porque son tablas que no tienen registros eliminados, pero algunas aplicaciones requieren que sólo se migren algunos datos, ya sea basados en fechas o sin contar los registros eliminados y es precisamente eso lo que deseo hacer. En FoxPro hago las consultas a los DBF sin problemas, pero no sé cómo pasarlos a MySQL, pues cuando uso este script me traslada todos los registros, incluso los que están marcados como eliminados, además existen tablas de más de 2 millones de registros y, aunque podría cargarlos todos, sería una aplicación ineficiente pues tardaría demasiado en hacer la migración.
Espero que alguien pueda darme una idea, por mi parte seguiré buscando alguna solución.
Gracias nuevamente.

Adrian Ramiro

unread,
Jul 24, 2014, 12:55:52 AM7/24/14
to php...@googlegroups.com
Si haces una copia de la tabla, le das pack para eliminar registros marcados con delete y luego exportas con tu script en PHP ?
2 millones de registros no es mucho hoy en día y por buscar la solución super eficiente, seguís sin solución o haciéndolo manualmente.

Es solo una idea, suerte con el viaje al pasado
--
/**
* @author: Adrian R. Gay Cattaneo
*/

Federico Arriola

unread,
Jul 24, 2014, 1:14:28 AM7/24/14
to php...@googlegroups.com

Yo automatizaria la salida a csv con un ejecutable fox que lo haga y desde ese csv importo al mysql. De acuerdo al intervalo de actualización que necesites, programas la ejecucion de la exportacion/importacion.

Incluso podrias ver de exportar solo los registros modificados o los nuevos.

No recuerdo ahora si las ultimas versiones de fox soporta ban odbc. Si fuera asi podes usar el conector odbc de mysql para actualizar la tabla para la versión web desde fp sin el csv intermedio.

Saludos

Enrique Astete Baldeón

unread,
Jul 24, 2014, 1:22:26 AM7/24/14
to php...@googlegroups.com
Adrián, gracias por tu respuesta y por la idea. Eso va a solucionar lo de los registros marcados para eliminación. Usaré la función dbase_pack() de PHP para poder empaquetar la copia del DBF y así poder migrar sólo los registros válidos. Gracias nuevamente.

Enrique Astete Baldeón

unread,
Jul 24, 2014, 1:24:52 AM7/24/14
to php...@googlegroups.com
FedeA, me diste una buena salida con el ODBC de MySQL, lo estoy descargando desde el portal de MySQL para poder usarlo. Vamos a ver si eso soluciona lo de hacer consultas previas a la migración. Y para poder automatizarlo aún más, estoy creando unos archivos batch para que se ejecute como tarea. Muchas gracias por sus aportes.

Analyzer

unread,
Jul 24, 2014, 10:04:49 AM7/24/14
to php...@googlegroups.com
>No recuerdo ahora si las ultimas versiones de fox soporta ban odbc. Si fuera asi podes usar el conector odbc de mysql para >actualizar la tabla para la versión web desde fp sin el csv intermedio.

Para no tener problemas entre VFP y Mysql puedes usar el ODBC 3.51

Enrique Astete Baldeón

unread,
Jul 24, 2014, 12:56:57 PM7/24/14
to php...@googlegroups.com
Gracias por tu aporte, pero como dije inicialmente, las tablas que deseo migrar fueron creadas con FoxPro para DOS, un poco antiguas, pero es lo que hay...
De todas maneras estoy evaluando el MySQL ODBC para ver si la automatización completa se soluciona con ello.
Saludos.

Cesar Roldan Sanchez

unread,
Oct 27, 2015, 11:39:18 PM10/27/15
to Grupo PHP Argentina



POR FAVOR , NECESITO AYUDA URGENTE PARA INSERTAR UN VALOR DE DATE (8) .

EN UNA TABLA DBASE, USANDO PHP. 

CUANDO LO HAGO LAS COLUMNAS DE LA DERECHA SE CORREN , SE MUEVEN.

NO SE EN QUE FORMATO SE DEBE GUARDAR Y POR QUE SE MUEVEN A LA DERECHA... POR FAVOR ,

ES URGENTE AYUDENME!!!!!!!!!!!!!!

Tordek

unread,
Oct 27, 2015, 11:47:43 PM10/27/15
to php...@googlegroups.com
Hola, Cesar. No hace falta que grites; por favor usá las minúsculas.

Mostranos lo que tenés, y qué te está pasando. ¿Querés agregar una nueva columna a la tabla? ¿Agregar un nuevo registro? ¿O modificar una entrada?

¿A qué te referís con que las columnas se corren? ¿Estás editando el archivo a mano, o estás usando una conexión a la BBDD?

Cesar Roldan Sanchez

unread,
Oct 28, 2015, 1:13:15 AM10/28/15
to Grupo PHP Argentina

Hola, Lo siento por la bulla. Estoy desesperado no encuentro soluciones.
El tema es el siguiente. Tengo una aplicación PHP+SQL2014 en la cual lleno un par de tablas ( cabecera y Detalle)
previamente creo la estructura de mis tablas y sus tipos de campos con un array.
En esta estructura hay campos DATE de longitud 8, entre otros.



Lo que hago es un select query y haciendo un while a cada fila, voy insertando usando conexion dBase de PHP (  php_dbase.dll )





Me crea los archivos, pero el campo DATE nunca pinta... no sale nada. Probé solo insertando hasta esa columna.




Luego inserté las columnas que siguen después de la columna del campo DATE y lo increíble es que si pinta los valores de la columna DATE.... Pero en la columna siguiente y no en la que debe ser. Algo así como que si la columna DATE impidiera que ahí se registre algo y lo bote o desplace a la derecha.!!!

REalmente no se en que formato se debe guardar ese campo si como numero:  ddmmyyyy o yyyymmdd o como texto: dd-mm-yyyy o yyyy-mm-dd

No se que hacer!! por favor como inserto en un campo DATE!

Tordek

unread,
Oct 28, 2015, 2:13:12 AM10/28/15
to php...@googlegroups.com
Según los ejemplos en el manual, el formato apropiado parece ser YMD. Yo te recomendaría que en vez de esa chanchada de RIGHT('00' + ..., 2) + '' + ... en el select, hicieras la transformación en PHP; o con funciones de string simples (estás casteando el campo a DATE, ¿es un string?) Y ojo con tu "set dateformat mdy al principio.

También, según el manual, insertar entradas con tipos incompatibles hace cosas inesperadas. Probá hacer un...

Donde hacés

dbase_add_record($db, array(...));

probá un

var_dump(array(...));

para ver qué es lo que estás tratando de ingresar a la BBDD, y probá insertando entradas a mano; ¿qué pasa si ponés...

dbase_add_record($db, array('05', '100001', ..., '20150101'))

?

Y fijate en el comentario acá en el manual: https://secure.php.net/manual/en/function.dbase-create.php

cuando declarás un campo con tipo "D" no indicás nada más; sólo array("CDATE", "D");

Cesar Roldan Sanchez

unread,
Oct 28, 2015, 1:01:19 PM10/28/15
to Grupo PHP Argentina

MUCHAS GRACIAS POR LAS OBSERVACIONES, HARE LAS PRUEBAS AHORA MISMO ESPERO ENCONTRAR LA CLAVE.

GRACIAS TORDEK

Cesar Roldan Sanchez

unread,
Oct 29, 2015, 2:35:55 AM10/29/15
to Grupo PHP Argentina


Hola pude pintar lo que esta registrado de un DBF que esta correcto. Ahi pude ver como estan las columnas, usando el var_dump.:


EL CAMPO CDATE LO HE DECLARADO array("CDATE",   "D")     Pero igual me siguen empujando las columnas a la decha y se deteriora todo, Como que proteje esa columna CDATE.




Lo que esta en rojo es lo que debiera salir... pero el campo CDATE esta como protegido para que no se grabe.
 Seguiré intentando... agradeceré mas ayuda posible , me quedan 3 dias.

Gacias.

Tordek

unread,
Oct 29, 2015, 2:47:53 AM10/29/15
to php...@googlegroups.com
Lo que me preocupa es que en una de las imágenes que pusiste antes te indica que el formato de la columna es "D 0,0"... si ese 0 se refiere a la longitud (no sé con qué estás mirándolo), tendrías que volver a generar el archivo. Pero... ni idea.

Camello Ar

unread,
Oct 29, 2015, 8:13:26 PM10/29/15
to php...@googlegroups.com
Ojo que en Dbase/Clipper la longitud de campo fecha es 6 caracteres DDMMAA (de ahí el famoso problema 2ky), no se si en nuevas versiones del formato se amplio a 8 caracteres

Cesar Roldan Sanchez

unread,
Nov 2, 2015, 11:06:35 PM11/2/15
to Grupo PHP Argentina



Saludos chicos, les cuento que aun sigo con el inconveniente, he logrado conseguir tiempo con mi cliente, explicándole que la el Proveedor de CONCAR me esta validando los otros datos que no son DATE. He encontrado que se puede generar los archivos en DBF usando Visual .Net y Microsoft Jet con una conexión ODBC.

Tratare de hacer un avance pero si alguien tiene código útil, lo agradecería. Mi idea es seleccionar lo que quiero exportar y así generar los archivos a una ruta local.
Gracias....


Tordek

unread,
Nov 3, 2015, 10:15:56 AM11/3/15
to php...@googlegroups.com
Te mencioné que lo que me preocupa es que en uno de tus mails mostraste que el tipo de campo te indica que es "D 0,0", y sospecho que te está diciendo que es una "fecha de longitud 0" (porque aparentemente el formato de dbase no te obliga que el tipo de fecha tenga que ser de 8). ¿Qué pasa si creás un archivo nuevo?

Cesar Roldan Sanchez

unread,
Dec 15, 2015, 9:39:33 AM12/15/15
to Grupo PHP Argentina


HOLA A TODOS NUEVAMENTE, SOY QUIEN TENIA PROBLEMAS CON LOS ARCHIVOS DBF.

YA HICE UNA APLICACION EN VISUAL Y LOGRE EXPORTAR ARCHIVOS : "FoxBase+/dBase III PLUSE, NO MEMO"

EL TEMA ES QUE MIS NUMERIC(14,4) Y NUMERIC(11,3) ESTAN SALIENDO COMO NUMERIC(20,5) .

MI PROVEEDOR QUIEN VALIDA MIS ARCHIVOS ME DICE QUE NO PUEDE SALIR ASI:




MI CODIGO TIENE LO SGTE POR CADA COLUMNA:




/*CONDICIONALES DEL DETALLE*/



If columnName.Equals("DSUBDIA") Then   
            dataType = "nchar"
            maxLength = 2
ElseIf columnName.Equals("DCOMPRO") Then
            dataType = "nchar"
            maxLength = 6
ElseIf columnName.Equals("DSECUE" Then
            dataType = "nchar"
            maxLength = 4
ElseIf columnName.Equals("DFECCOM") Then
            dataType = "nchar"
            maxLength = 6
ElseIf columnName.Equals("DCUENTA") Then
            dataType = "nchar"
            maxLength = 8
ElseIf columnName.Equals("DCODANE") Then
            dataType = "nchar"
            maxLength = 18
ElseIf columnName.Equals("DCENCOS") Then
            dataType = "nchar"
            maxLength = 6
ElseIf columnName.Equals("DCODMON") Then
            dataType = "nchar"
            maxLength = 2
ElseIf columnName.Equals("DDH") Then
            dataType = "nchar"
            maxLength = 1
ElseIf columnName.Equals("DIMPORT") Then
            dataType = "numeric (14, 2)"
ElseIf columnName.Equals("DTIPDOC") Then
            dataType = "nchar"
            maxLength = 2
ElseIf columnName.Equals("DNUMDOC") Then
            dataType = "nchar"
            maxLength = 20
ElseIf columnName.Equals("DFECDOC") Then
            dataType = "nchar"
            maxLength = 6
ElseIf columnName.Equals("DFECVEN") Then
            dataType = "nchar"
            maxLength = 6
ElseIf columnName.Equals("DAREA") Then
            dataType = "nchar"
            maxLength = 3
ElseIf columnName.Equals("DFLAG") Then
            dataType = "nchar"
            maxLength = 1
ElseIf columnName.Equals("DDATE") Then
            dataType = "datetime"
ElseIf columnName.Equals("DXGLOSA") Then
            dataType = "nchar"
            maxLength = 30
ElseIf columnName.Equals("DUSIMPOR") Then
            dataType = "numeric (14, 2)"
ElseIf columnName.Equals("DMNIMPOR") Then
            dataType = "numeric (14, 2)"
ElseIf columnName.Equals("DCODARC") Then
            dataType = "nchar"
            maxLength = 2
ElseIf columnName.Equals("DFECCOM2") Then
            dataType = "datetime"
ElseIf columnName.Equals("DFECDOC2") Then
            dataType = "datetime"
ElseIf columnName.Equals("DFECVEN2") Then
            dataType = "datetime"
ElseIf columnName.Equals("DCODANE2") Then
            dataType = "nchar"
            maxLength = 18
ElseIf columnName.Equals("DVANEXO") Then
            dataType = "nchar"
            maxLength = 1
ElseIf columnName.Equals("DVANEXO2") Then
            dataType = "nchar"
            maxLength = 1
ElseIf columnName.Equals("DTIPCAM") Then
            dataType = "numeric (11, 4)"
ElseIf columnName.Equals("DCANTID") Then
            dataType = "numeric (13, 3)"
ElseIf columnName.Equals("DRETE") Then
            dataType = "nchar"
            maxLength = 1
ElseIf columnName.Equals("DPORRE") Then
            dataType = "numeric (7, 3)"
ElseIf columnName.Equals("DTIPDOR") Then
            dataType = "nchar"
            maxLength = 2
ElseIf columnName.Equals("DNUMDOR") Then
            dataType = "nchar"
            maxLength = 20
ElseIf columnName.Equals("DFECDO2") Then
            dataType = "datetime"
ElseIf columnName.Equals("DTIPTAS") Then
            dataType = "nchar"
            maxLength = 8
ElseIf columnName.Equals("DIMPTAS") Then
            dataType = "numeric (6, 2)"
ElseIf columnName.Equals("DIMPBMN") Then
            dataType = "numeric (14, 2)"
ElseIf columnName.Equals("DIMPBUS") Then
            dataType = "numeric (14, 2)"
ElseIf columnName.Equals("DINACOM") Then
            dataType = "numeric (14, 2)"
ElseIf columnName.Equals("DIGVCOM") Then
            dataType = "numeric (14, 2)"
ElseIf columnName.Equals("DMEDPAG") Then
            dataType = "nchar"
            maxLength = 8
ElseIf columnName.Equals("DMONCOM") Then
            dataType = "nchar"
            maxLength = 2
ElseIf columnName.Equals("DCOLCOM") Then
            dataType = "nchar"
            maxLength = 1
ElseIf columnName.Equals("DBASCOM") Then
            dataType = "numeric (14, 2)"
ElseIf columnName.Equals("DTPCONV") Then
            dataType = "nchar"
            maxLength = 1
ElseIf columnName.Equals("DFLGCOM") Then
            dataType = "nchar"
            maxLength = 1
ElseIf columnName.Equals("DTIPACO") Then
            dataType = "nchar"
            maxLength = 1
ElseIf columnName.Equals("DANECOM") Then
            dataType = "nchar"
            maxLength = 18
ElseIf columnName.Equals("DTIDREF") Then
            dataType = "nchar"
            maxLength = 2
ElseIf columnName.Equals("DFECREF") Then
            dataType = "datetime"
ElseIf columnName.Equals("DNDOREF") Then
            dataType = "nchar"
            maxLength = 20
ElseIf columnName.Equals("DBIMREF") Then
            dataType = "numeric (14, 2)"
ElseIf columnName.Equals("DIGVREF") Then
            dataType = "numeric (14, 2)"
End If




ALGUNA IDEA DE COMO AJUSTAR EL TAMAÑO.???????


==================================================================================================================
Reply all
Reply to author
Forward
0 new messages