Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Datye_format urgente please

Estas en el tema de Datye_format urgente please en el foro de Mysql en Foros del Web. AMIGOS NECESITO AYUDA URGENTE ESTOY LLENANDO UNA BASE DE DATOS QUE TIENE 136 CAMPO Y LO ESTOY HACIENDO DESDE UN ARCHIVO PLANO QUE LEO DESDE ...
  #1 (permalink)  
Antiguo 22/01/2009, 14:01
 
Fecha de Ingreso: enero-2009
Mensajes: 31
Antigüedad: 15 años, 2 meses
Puntos: 0
Datye_format urgente please

AMIGOS NECESITO AYUDA URGENTE ESTOY LLENANDO UNA BASE DE DATOS QUE TIENE 136 CAMPO Y LO ESTOY HACIENDO DESDE UN ARCHIVO PLANO QUE LEO DESDE VISUAL 6 , LO CUAL FUNCIONA, PERO EL DRAMA ES QUE NO SE COMO HACER PARA QUE CUANDO ME GUARDE LOS DATOS EN LA BD QUE ES MYSQL LO HAGA CON EL FORMATO QUE CORRESPONDE

ESTE ES EL CODIGO DE LA FUNCION DE ALMACENAR

ruta = "'" & CommonDialog1.FileName & "'"
rload = "load data INFILE "
sql = rload & ruta
sql = reemplazarTexto(sql, "\", "/")
fin = " into table andec fields terminated by '\t' (sector,sucursal,comuna,area_tipica,tarifa,categor ia,cliente,rut,ruta,fono1,fono2,fono3,fono4,fono5, direccion,estado_sum,estado_cliente,estado_conveni o,estado_energia,tiene_pac,tiene_tarjeta_activa,ca nt_conv_energia_vig,cant_conv_energia_cad,cantidad _tactiva,nombre,cant_fin,cant_rec_terceros,clas_co nv,deuda_inicial_conv,cuotas_convenio,fech_inicial _conv,"
fin2 = " fech_final_conv,tipo_conv,clas_conv1,deuda_inicial _conv1,cuotas_conv1,fech_inicial_conv1,fech_final_ conv1,tipo_conv1,clas_conv2,deuda_inicial_conv2,cu otas_conv2,fech_inicial_conv2,fech_final_conv2,tip o_conv2,afect_corte_energia,afecto_corte_conv,anti guedad_suministro,antiguedad_energia,deuda_energia ,cuotas_impagas_conv_energia_max,deuda_conv_energi a_fac,deuda_conv_energia_venc,"
fin3 = " deuda_conv_energia_xfac,deuda_conv_energia_total,s aldo_servicio_activa,deuda_activa_conv,deuda_mundo _activa,deuda_saldo_disputa,cuotas_imp_finan_max,d euda_finan_fac,deuda_finan_vencida,deuda_finan_xfa c,deuda_finan_total,antiguedad_rec_terceros,deuda_ rec_ter_fac,deuda_rec_ter_ven,deuda_rec_total,deud a_consumos,deuda_total,mal_factor_potencia,cant_me ses_cerrado,restr_corte,restr_conv,clave_tarifa,"
fin4 = " total_pagar,mto_arriendo,mto_cargo_fijo,mto_energi a,mto_demanda,mto_demanda_hp,mto_mal_factor,mto_in teres,mto_debitos_varios,mto_iva,mto_saldo_anterio r,mto_saldo_ant_conv,mto_saldo_ant_activa,mto_sald o_ant_financ,mto_saldo_ant_otro,cuota_conv,fech_re c_energia,mto_rec_energia,lugar_pago_energia,fech_ rec_energia1,mto_rec_energia1,lugar_pago_energia1, fech_rec_energia2,mto_rec_energia2,lugar_pago_ener gia2,"
fin5 = " fech_rec_conv_energia,mto_rec_conv_energia,lugar_p ago_conv,fech_rec_conv_energia1,mto_rec_conv_energ ia1,lugar_pago_conv_energia1,fech_rec_conv_energia 2,mto_rec_conv_energia2,lugar_pago_conv_energia2,f ech_rec_activa,mto_rec_activa,lugar_pago_activa,fe ch_rec_activa1,mto_rec_activa1,lugar_pago_activa1, fech_rec_activa2,mto_rec_activa2,lugar_pago_activa 2,fech_rec_finan,mto_rec_finan,lugar_pago_finan,fe ch_rec_finan1,"
fin6 = " mto_rec_finan1,lugar_pago_finan1,fech_rec_finan2,m to_rec_finan2,lugar_pago_finan2,fech_rec_tercero,m to_rec_tercero,lugar_pago_tercero,fech_rec_tercero 1,mto_rec_tercero1,lugar_pago_tercero1,fech_rec_te rcero2,mto_rec_tercero2,lugar_pago_tercero2)"
sql = sql & fin & fin2 & fin3 & fin4 & fin5 & fin6
Conecta
cn.Execute (sql)

Y NECESITO POR EJEMPLO EL CAMPO FECH_INICIAL_CONV DARLE FORMATO DE FECHA CON EL DATE_FORMAT NO ME FUNKA NECESITO QUE ALGUIEN ME AYUDE URGENTE PORFA
  #2 (permalink)  
Antiguo 23/01/2009, 01:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años
Puntos: 574
Respuesta: Datye_format urgente please

Eso que nos has mandado es dificil de leer....

Pero a ver antes de hacer el cn.Execute (sql) yo lo que haria es sacar por pantalla el contenido de sql así verás si tiene el formato que tiene que tener para que mysql pueda ejecutarlo (con un copy paste al Query Browser puedes ver si funciona o donde falla). El resto es siplemente formatear adequadamente ese texto, teniendo en cuenta de que tipo es cada campo...

text 'contenido del campo'
date 'aaaa-mm-dd'
datetime 'aaaa-mm-dd hh:mm:ss'
numéricos el campo sin apostrofes

si tienes que modificar el formato de lo que te llegue des de el texto plano no tendras mas remedio que leer registro a registro y asignarlo a variables vb para poder operar sobre ellas y finalmente generar una sentencia INSERT INTO bien formateada ...

Quim
  #3 (permalink)  
Antiguo 23/01/2009, 04:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Datye_format urgente please

SI el archivo plano tiene los campos de datos separados por tabulaciones, comas o caracteres de algún tipo, lo que te convendría es hacer que MySQL lo cargue directamente con una sentencia LOAD DATA INFILE.
Lo único que debes asegurarte es que:
1. Los decimales estén separados por puntos y no por comas.
2. Las fechas tengan el formato "AAAA-MM-DD" y si es un DateTime "AAAA-MM-DD HH:mm:ss", siendo la hora una representación de 00 a 24.
3. Debes crear previamente una tabla en MySQL con los mismos campos, del tipo correcto y en el mismo orden, con un rango de representación adecuado (si entran valores hasta 320, no sirve un SMALLINT UNSIGNED, debe ser un INT).
4. Tomar en cuenta los caracteres escapados.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:22.