Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Si no me equivoco, este componente también tiene un atributo "RowDelimiter".
Este sería el delimitador de siguiente línea
Mira qué es lo que tiene y modifícalo para que sea #13 o #13#10 por ejemplo.
Responder Con Cita
  #2  
Antiguo 21-05-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Gracias de nuevo.

Yo no veo este atributo por ningun lado, no se si estoy en lo correcto, la generacion del txt lo hago con la consulta sql siguiente:

Código SQL [-]
if F_Confirmacio.ShowModal = mrok then
                        begin
                                SQLAcumula.Close;
                                SQLAcumula.ParamByName('DESDEDATA').AsDate := JvDateEdit1.Date;
                                SQLAcumula.ParamByName('FINSDATA').AsDate := JvDateEdit2.Date;
                                SQLAcumula.Open;
                                If SaveDialog1.Execute then
                                begin
                                        AssignFile(E, SaveDialog1.FileName);
                                        Rewrite(E);
                                        SQLAcumula.First;
                                        while not SQLAcumula.Eof do
                                        begin
                                                WriteLn(E, SQLAcumulaID_REBUT.Value, ';', SQLAcumulaID_USUARI.Value, ';', DateToStr(SQLAcumulaDATA.Value), ';', SQLAcumulaTITOL.Value, ';', SQLAcumulaC_POSTAL.Value, ';', SQLAcumulaCODI_CLUB.Value, ';',
                                                SQLAcumulaARBITRES.Value, ';', FloatToStr(SQLAcumulaMATERIAL.Value), ';', SQLAcumulaI1.Value, ';', SQLAcumulaI2.Value, ';', SQLAcumulaI3.Value, ';', SQLAcumulaI4.Value, ';',
                                                SQLAcumulaI5.Value, ';', FloatToStr(SQLAcumulaTI1.Value), ';', FloatToStr(SQLAcumulaTI2.Value), ';', FloatToStr(SQLAcumulaTI3.Value), ';', FloatToStr(SQLAcumulaTI4.Value), ';',
                                                FloatToStr(SQLAcumulaTI5.Value), ';', FloatToStr(SQLAcumulaTOTAL_REBUT.Value), ';', FloatToStr(SQLAcumulaIMPORT.Value), ';', SQLAcumulaTEXTE.Value, ';', SQLAcumulaSUSPENSIO.Value, ';',
                                                SQLAcumulaKM_TOTALS.Value, ';', SQLAcumulaASPIRANT.Value, ';', TimeToStr(SQLAcumulaHORA_CONS.Value), ';', TimeToStr(SQLAcumulaHORA_SORT.Value), ';', SQLAcumulaNUM_CORREDORS.Value, ';', SQLAcumulaID_ARBITRE.Value, ';',
                                                SQLAcumulaID_METGE.Value, ';', SQLAcumulaDIR_CURSA.Value, ';', SQLAcumulaCATEGORIA.Value, ';', SQLAcumulaZONA.Value, ';', FloatToStr(SQLAcumulaKM_CURSA.Value), ';',
                                                SQLAcumulaTRANSP.Value, ';', SQLAcumulaGRAVAT.Value, ';', SQLAcumulaPREU_FIX.Value, ';', FloatToStr(SQLAcumulaIMPORT_2.Value), ';',
                                                FloatToStr(SQLAcumulaFEINER.Value), ';', FloatToStr(SQLAcumulaDOS_SECTORS.Value), ';', FloatToStr(SQLAcumulaCAMPIONAT.Value), ';', FloatToStr(SQLAcumulaI10.Value), ';', SQLAcumulaCODI_BARRES.Value, ';', SQLAcumulaCREA_REBUT.Value, ';',
                                                FloatToStr(SQLAcumulaTI6.Value), ';', FloatToStr(SQLAcumulaBICIXIPS.Value), ';', SQLAcumulaNUM_FIX.Value, ';', SQLAcumulaPAGAT.VaLue, ';', SQLAcumulaEXTRES.Value, ';', SQLAcumulaREPART.Value, ';', SQLAcumulaPAGADOR.Value);
                                                SQLAcumula.Next;
                                        end;
                                        CloseFile(E);
                                end;
                                Showmessage('Fitxer creat');

Estoy perdido.

Saludos

Josep
Responder Con Cita
  #3  
Antiguo 21-05-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Puede ser que algún valor de los que exportas tenga un ; dentro y al importarlo lo separe en dos y todo se mueva...

Imagina que el valor de un campo tipo string contenga el caracter que utilizas para separar campos:
NOMBRE = 'JUAN PEREZ'
DIRECCION = 'AV. PRINCIPAL NRO. 123; PISO 3' <-- Hay un ; en medio.
IMPORTE = 1234.56

si exportas esto como NOMBRE;DIRECCION;IMPORTE tendrás :
'JUAN PEREZ;AV. PRINCIPAL NRO. 123; PISO 3;1234,56'

Al separarlos obtendrás:
NOMBRE = 'JUAN PEREZ'
DIRECCION = 'AV. PRINCIPAL NRO. 123'
IMPORTE = PISO 3 <-- Esto no es un valor numerico

Otra cosa que puede estar molestando en la importación es la conversión de Float a String.
En España se utiliza la "," como separador decimal. En Norteamérica se utiliza el "."
La convertir mediante FloatToStr utiliza el separador decimal que el ordenador tiene definido y esto puede traer problemas si la importación espera valores separados por "." decimal
Responder Con Cita
  #4  
Antiguo 21-05-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Revisado de nuevo y no hay ningun ";" dentro de ningun campo.

Lo mas extraño es que tal y como he comentado antes en D6 funcionaba bien y en XE5 no.

Cuando llegue a casa tengo una máquina con XP 32 bits y probaré si allí lo importa, luego comentaré el resultado

Gracias a todos

Josep
Responder Con Cita
  #5  
Antiguo 22-05-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Probado en una máquina XP 32 bits y falla igual, da el mismo error.

Existe alguna forma d visualizar linea a linea lo que voy importando para sabere n que momento peta?

Gracias

Josep
Responder Con Cita
  #6  
Antiguo 28-05-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Hola a todos.

Más investigaciones, ejecutando el código en DXE5, falla siempre incluso si le pongo una sola linea me dice que fichero importado, (con lo que creia que lo habia solucionado), pero no importa nada no añade ningun registro a la tabla; si pongo más lineas pues sql error -303 etc, etc..

Si introduzco a mano los datos del txt directamente desde IBExpert en la tabla, me lo coge perfectamente, con lo cual deduxco que no es un problema del formato del txt, aunque algo esta temblando por ahí y no lo consigo aislar.

Si ejecuto el código, que es exactamente igual (he revisado linea a linea), en D6 me importa el fichero sin más.

He revisado el tema del decimal separator y está establecido en el '.' (punto), en la configuración de W7 tambien está establecido el punto.

No se que más mirar, estoy más perdido que una cabra en un garaje.

Gracias y saludos

Josep
Responder Con Cita
  #7  
Antiguo 28-05-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Revisa que el fichero generado también tenga como separador decimal el '.' (punto).
Si lo generas en un ordenador y lo lees en otro, esto podría traerte esa parte modificada.

El formato de la fecha también es importante. Dependiendo del separador, el orden de los elementos es diferente para Firebird (mm/dd/aaaa dd-mm-aaaa aaaa.mm.dd)

Verifica que el tipo de campo acepte el valor que le envías:
SMALLINT 0..65535
INTEGER 0..muuuucho
VARCHAR(x) x caracteres
CHAR(x) x caracteres

Lo dicho anteriormente:
Si hay comillas o comillas simples, puede que eso estropee el formato
Responder Con Cita
  #8  
Antiguo 31-05-2014
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Poder: 20
jafera Va por buen camino
Hola de nuevo.

Sigo dándole vueltas al asunto.
He probado toda clase de valores en los campos y nada de nada, he probado a guardar el txt como ansi, como unicode, como utf-8 y tampoco.
He probado con otro proceso de importación con otro fichero txt completamente distinto dentro del mismo programa y me da el mismo error.
He quitado el componente que hace la importación (IBSQL), lo he vuelto a soltar dentro del form por si fuera un problema de version actualizada y tampoco funciona.
Estoy semi desesperado, en un XP a 32 bits con D6 funciona bien pero en un W7 a 64 bits con XE5 nada de nada.
Como comenté en un mensaje anterior el código de una versión a la otra es exactamente el mismo.
Porqué narices la compilación D6 funciona de fábula y la XE5 no?
Tendré que cambiar los componentes de acceso a datos?

Gracias por vuestro tiempo.

Saludos

Josep
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DELPHI6 Importar fichero codificado UTF-8 a Dbase Jose Manuel Varios 0 16-05-2011 18:46:14
Importar fichero XML cincosoft OOP 1 08-02-2009 10:29:58
Importar fichero .dat desde cobol julian_ch Varios 0 08-08-2005 17:43:17
Error al importar dll mguixot Varios 2 08-07-2005 15:47:26
importar fichero consumo telefonica tonid Varios 3 11-09-2003 09:49:28


La franja horaria es GMT +2. Ahora son las 04:47:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi