Buenas tardes:
Espero poder exponer el problema con claridad
Estamos pasando aplicaciones de DBF a MySql
Para eso hemos desarrollado un importador de un fichero DBF (oDbfOri) a
una tabla de MySQL (oSqlDes)
Este es el precedimiento que lee de oDbfOri y segun el tipo de campo
graba en oSqlDes
En este codigo solo se leen los 3000 primeros
Lo primero que descubrimos es que de un fichero de 58000 registros
,grabó 49000. Después de repetirlo varias veces, descubrimos que
efectivamente el sistema se 'comia' los registros.
Acotando el numero de registros, descubrimos que el error lo generaba de
manera aleatoria y con 3000 podemos documentarlo.
Utilizamos DataSets .
1º Creamos un registro vacio con :FastAddNEw() (con addnew() también
genera el mismo error)
2º En un for / next leemos los campos de oDbfOri y grabamos en
oSqlDwes , según corresponda el tipo de campo usando FieldPut
3º Cuando se ha realizado la grabación , añadimos un elemento al array
de control aDatosArray ( despues del :FastUpdate() )
4º Al finalizar del proceso visualizamos el array con una función
propia .(msgarray).
5º Logicamente es de esperar que por cada registro añadido ,genere un
Id nuevo y un registro en el fichero destino .
6º La sorpresa es lo que nos encontramos al revisar el array ,
despues de visualizar los registros en el origen y destino , por fin
descubrimos donde está el error .
Cuando genera los registros 2129 y 2130 ,genera el mismo ID para
varios registros ,claro en el fichero solo se guarda 1 puesto que es
primary key y unique. (Ver fichero adjunto)
Necesitamos la máxima respuesta en este asunto porque tenemos que
entregar 2 aplicaciones casi terminadas y no podemos hacerlo ante la
inseguridad del funcionamiento actual
//--- Codigo del importador -------------
El codigo está verificado y de hecho funciona bien los primeros 2000 y
pico registros.
with object ::oSqlDes
:Open()
nProBar := 0
do while ! ::oDbfOri:Eof() .and. ::oDbfOri:RecNo() < 3000
nProBar ++
:FastAddNew()
//---- Lectura de los datos y actualizacion -------------------
for nK := 1 to len(aCampos)
cFieldOri := allstring(aCampos[nK,1])
cFieldDes := allstring(aCampos[nK,2])
if :FieldPos(cFieldDes) == 0
msginfo("Error en campo destino "+cFieldDes)
endif
if valtype(::oDbfOri:FieldGetByName(cFieldOri)) == "C"
nAncho := :aFields[:FieldPos(cFieldDes)]:nLen
cCampo := ::oDbfOri:FieldGetByName(cFieldOri)
if :FieldSqlType(:FieldPos(cFieldDes)) == "BLOB" .or.
:FieldSqlType(:FieldPos(cFieldDes)) == "VARCHAR"
:FieldPut(:FieldPos(cFieldDes),cCampo)
elseif :FieldSqlType(:FieldPos(cFieldDes)) != "CHAR"
:FieldPut(:FieldPos(cFieldDes),val(cCampo))
else
:FieldPut(:FieldPos(cFieldDes),PADR(cCampo,nAncho))
endif
else
:FieldPut(:FieldPos(cFieldDes),::oDbfOri:FieldGetByName(cFie ldOri))
endif
next nK
:confechac := dtos(::oDbfOri:con_fec)
//---- Actualizacion concepto actividad
nActo := ::oDbfOri:FIeldGetByName("con_act")
if nActo > 0 .and. nActo <= len(::aActo)
:conactividad := val(::aActo[nActo])
endif
//---------------------------------------------------------- -------------
:FastUpdate()
aadd(aDatosArray,{:id,:connumero,:conHistoria,:confecha,:con ho1,:conho2})
::oDbfOri:Skip()
enddo
::oSqlDes:Update()
//----------- Actualizacion de cip y numero de historia
WaitOn("Actualizando contactos","Un momento...")
AppData:oSqlSource:Execute("UPDATE IGNORE contactos SET conhistoria
= (SELECT historiapac FROM pacientes WHERE codigopac = connumero ) WHERE
id > 0 ")
WaitOff()
End with
Un saludo y Gracias .
Juan José García .
BISOFT
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Problema muy serio cn RC2 y MySql
- ignacio
- Site Admin
- Mensajes: 9443
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Problema muy serio cn RC2 y MySql
Juan José,
Con el código que incluyes es realmente difícil llegar a ninguna conclusión.
Antes de nada querría que comprobases lo siguiente:
1) Existe algún tipo de TRY..CATCH en el código?
2) Se han deshabilitado los errores en el datasource?
3) La clave primaria la compone SOLO el campo ID? (Deberia haber provocado
un error MySQL)
4) Existe algún campo BLOB de gran tamaño (más de 1 Mega)
A priori es extraño que vayan bien en 3.000 registros y luego empiece a
fallar. No tiene mucho sentido. Me temo que es muy probable que tengas que
mandarnos la DBF y la definición de la tabla en MySQL, pero vamos a intentar
primero ver si es otra cosa.
En cualquier caso, te recomiendo que cambies completamente la forma de hacer
la importación si quieres múltiplicar por 100 la velocidad de importación y
me explico:
MySQL permite la creación de INSERTS múltiples. Algo así:
INSERT INTO X (a,b) VALUES ('1', 'one'), ('2', 'two'), ('3', 'three'),
Te propongo que construyas la cadena INSERT completa utilizando esta
facilidad. Cuando la cadena supere los 512 kb (por ejemplo) haces un
oDS:Execute() de ella y la pones en blanco y vuelta a empezar hasta que
hayas procesado la totalidad del fichero DBF. Estoy convencido que
multiplicaras por 100 la velocidad de traspaso.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"BiSoft" <bisoft@bisoft.es> escribió en el mensaje
news:4b0a9c97$[email=2@svctag-j7w3v3j....]2@svctag-j7w3v3j....[/email]
> Buenas tardes:
>
> Espero poder exponer el problema con claridad
>
> Estamos pasando aplicaciones de DBF a MySql
> Para eso hemos desarrollado un importador de un fichero DBF (oDbfOri) a
> una tabla de MySQL (oSqlDes)
>
> Este es el precedimiento que lee de oDbfOri y segun el tipo de campo graba
> en oSqlDes
>
> En este codigo solo se leen los 3000 primeros
>
> Lo primero que descubrimos es que de un fichero de 58000 registros ,grabó
> 49000. Después de repetirlo varias veces, descubrimos que efectivamente el
> sistema se 'comia' los registros.
>
> Acotando el numero de registros, descubrimos que el error lo generaba de
> manera aleatoria y con 3000 podemos documentarlo.
>
> Utilizamos DataSets .
> 1º Creamos un registro vacio con :FastAddNEw() (con addnew() también
> genera el mismo error)
> 2º En un for / next leemos los campos de oDbfOri y grabamos en oSqlDwes
> , según corresponda el tipo de campo usando FieldPut
> 3º Cuando se ha realizado la grabación , añadimos un elemento al array
> de control aDatosArray ( despues del :FastUpdate() )
> 4º Al finalizar del proceso visualizamos el array con una función propia
> .(msgarray).
> 5º Logicamente es de esperar que por cada registro añadido ,genere un Id
> nuevo y un registro en el fichero destino .
> 6º La sorpresa es lo que nos encontramos al revisar el array , despues
> de visualizar los registros en el origen y destino , por fin descubrimos
> donde está el error .
>
>
> Cuando genera los registros 2129 y 2130 ,genera el mismo ID para varios
> registros ,claro en el fichero solo se guarda 1 puesto que es primary key
> y unique. (Ver fichero adjunto)
>
> Necesitamos la máxima respuesta en este asunto porque tenemos que entregar
> 2 aplicaciones casi terminadas y no podemos hacerlo ante la inseguridad
> del funcionamiento actual
>
>
>
> //--- Codigo del importador -------------
> El codigo está verificado y de hecho funciona bien los primeros 2000 y
> pico registros.
>
> with object ::oSqlDes
> :Open()
> nProBar := 0
> do while ! ::oDbfOri:Eof() .and. ::oDbfOri:RecNo() < 3000
> nProBar ++
> :FastAddNew()
> //---- Lectura de los datos y actualizacion -------------------
> for nK := 1 to len(aCampos)
> cFieldOri := allstring(aCampos[nK,1])
> cFieldDes := allstring(aCampos[nK,2])
> if :FieldPos(cFieldDes) == 0
> msginfo("Error en campo destino "+cFieldDes)
> endif
> if valtype(::oDbfOri:FieldGetByName(cFieldOri)) == "C"
> nAncho := :aFields[:FieldPos(cFieldDes)]:nLen
> cCampo := ::oDbfOri:FieldGetByName(cFieldOri)
> if :FieldSqlType(:FieldPos(cFieldDes)) == "BLOB" .or.
> :FieldSqlType(:FieldPos(cFieldDes)) == "VARCHAR"
> :FieldPut(:FieldPos(cFieldDes),cCampo)
> elseif :FieldSqlType(:FieldPos(cFieldDes)) != "CHAR"
> :FieldPut(:FieldPos(cFieldDes),val(cCampo))
> else
> :FieldPut(:FieldPos(cFieldDes),PADR(cCampo,nAncho))
> endif
>
> else
>
> :FieldPut(:FieldPos(cFieldDes),::oDbfOri:FieldGetByName(cFie ldOri))
> endif
> next nK
> :confechac := dtos(::oDbfOri:con_fec)
>
> //---- Actualizacion concepto actividad
> nActo := ::oDbfOri:FIeldGetByName("con_act")
> if nActo > 0 .and. nActo <= len(::aActo)
> :conactividad := val(::aActo[nActo])
> endif
>
> //---------------------------------------------------------- -------------
> :FastUpdate()
>
> aadd(aDatosArray,{:id,:connumero,:conHistoria,:confecha,:con ho1,:conho2})
>
> ::oDbfOri:Skip()
> enddo
> ::oSqlDes:Update()
>
> //----------- Actualizacion de cip y numero de historia
> WaitOn("Actualizando contactos","Un momento...")
> AppData:oSqlSource:Execute("UPDATE IGNORE contactos SET conhistoria =
> (SELECT historiapac FROM pacientes WHERE codigopac = connumero ) WHERE id
> > 0 ")
> WaitOff()
>
> End with
>
>
> Un saludo y Gracias .
>
> Juan José García .
> BISOFT
>
Con el código que incluyes es realmente difícil llegar a ninguna conclusión.
Antes de nada querría que comprobases lo siguiente:
1) Existe algún tipo de TRY..CATCH en el código?
2) Se han deshabilitado los errores en el datasource?
3) La clave primaria la compone SOLO el campo ID? (Deberia haber provocado
un error MySQL)
4) Existe algún campo BLOB de gran tamaño (más de 1 Mega)
A priori es extraño que vayan bien en 3.000 registros y luego empiece a
fallar. No tiene mucho sentido. Me temo que es muy probable que tengas que
mandarnos la DBF y la definición de la tabla en MySQL, pero vamos a intentar
primero ver si es otra cosa.
En cualquier caso, te recomiendo que cambies completamente la forma de hacer
la importación si quieres múltiplicar por 100 la velocidad de importación y
me explico:
MySQL permite la creación de INSERTS múltiples. Algo así:
INSERT INTO X (a,b) VALUES ('1', 'one'), ('2', 'two'), ('3', 'three'),
Te propongo que construyas la cadena INSERT completa utilizando esta
facilidad. Cuando la cadena supere los 512 kb (por ejemplo) haces un
oDS:Execute() de ella y la pones en blanco y vuelta a empezar hasta que
hayas procesado la totalidad del fichero DBF. Estoy convencido que
multiplicaras por 100 la velocidad de traspaso.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"BiSoft" <bisoft@bisoft.es> escribió en el mensaje
news:4b0a9c97$[email=2@svctag-j7w3v3j....]2@svctag-j7w3v3j....[/email]
> Buenas tardes:
>
> Espero poder exponer el problema con claridad
>
> Estamos pasando aplicaciones de DBF a MySql
> Para eso hemos desarrollado un importador de un fichero DBF (oDbfOri) a
> una tabla de MySQL (oSqlDes)
>
> Este es el precedimiento que lee de oDbfOri y segun el tipo de campo graba
> en oSqlDes
>
> En este codigo solo se leen los 3000 primeros
>
> Lo primero que descubrimos es que de un fichero de 58000 registros ,grabó
> 49000. Después de repetirlo varias veces, descubrimos que efectivamente el
> sistema se 'comia' los registros.
>
> Acotando el numero de registros, descubrimos que el error lo generaba de
> manera aleatoria y con 3000 podemos documentarlo.
>
> Utilizamos DataSets .
> 1º Creamos un registro vacio con :FastAddNEw() (con addnew() también
> genera el mismo error)
> 2º En un for / next leemos los campos de oDbfOri y grabamos en oSqlDwes
> , según corresponda el tipo de campo usando FieldPut
> 3º Cuando se ha realizado la grabación , añadimos un elemento al array
> de control aDatosArray ( despues del :FastUpdate() )
> 4º Al finalizar del proceso visualizamos el array con una función propia
> .(msgarray).
> 5º Logicamente es de esperar que por cada registro añadido ,genere un Id
> nuevo y un registro en el fichero destino .
> 6º La sorpresa es lo que nos encontramos al revisar el array , despues
> de visualizar los registros en el origen y destino , por fin descubrimos
> donde está el error .
>
>
> Cuando genera los registros 2129 y 2130 ,genera el mismo ID para varios
> registros ,claro en el fichero solo se guarda 1 puesto que es primary key
> y unique. (Ver fichero adjunto)
>
> Necesitamos la máxima respuesta en este asunto porque tenemos que entregar
> 2 aplicaciones casi terminadas y no podemos hacerlo ante la inseguridad
> del funcionamiento actual
>
>
>
> //--- Codigo del importador -------------
> El codigo está verificado y de hecho funciona bien los primeros 2000 y
> pico registros.
>
> with object ::oSqlDes
> :Open()
> nProBar := 0
> do while ! ::oDbfOri:Eof() .and. ::oDbfOri:RecNo() < 3000
> nProBar ++
> :FastAddNew()
> //---- Lectura de los datos y actualizacion -------------------
> for nK := 1 to len(aCampos)
> cFieldOri := allstring(aCampos[nK,1])
> cFieldDes := allstring(aCampos[nK,2])
> if :FieldPos(cFieldDes) == 0
> msginfo("Error en campo destino "+cFieldDes)
> endif
> if valtype(::oDbfOri:FieldGetByName(cFieldOri)) == "C"
> nAncho := :aFields[:FieldPos(cFieldDes)]:nLen
> cCampo := ::oDbfOri:FieldGetByName(cFieldOri)
> if :FieldSqlType(:FieldPos(cFieldDes)) == "BLOB" .or.
> :FieldSqlType(:FieldPos(cFieldDes)) == "VARCHAR"
> :FieldPut(:FieldPos(cFieldDes),cCampo)
> elseif :FieldSqlType(:FieldPos(cFieldDes)) != "CHAR"
> :FieldPut(:FieldPos(cFieldDes),val(cCampo))
> else
> :FieldPut(:FieldPos(cFieldDes),PADR(cCampo,nAncho))
> endif
>
> else
>
> :FieldPut(:FieldPos(cFieldDes),::oDbfOri:FieldGetByName(cFie ldOri))
> endif
> next nK
> :confechac := dtos(::oDbfOri:con_fec)
>
> //---- Actualizacion concepto actividad
> nActo := ::oDbfOri:FIeldGetByName("con_act")
> if nActo > 0 .and. nActo <= len(::aActo)
> :conactividad := val(::aActo[nActo])
> endif
>
> //---------------------------------------------------------- -------------
> :FastUpdate()
>
> aadd(aDatosArray,{:id,:connumero,:conHistoria,:confecha,:con ho1,:conho2})
>
> ::oDbfOri:Skip()
> enddo
> ::oSqlDes:Update()
>
> //----------- Actualizacion de cip y numero de historia
> WaitOn("Actualizando contactos","Un momento...")
> AppData:oSqlSource:Execute("UPDATE IGNORE contactos SET conhistoria =
> (SELECT historiapac FROM pacientes WHERE codigopac = connumero ) WHERE id
> > 0 ")
> WaitOff()
>
> End with
>
>
> Un saludo y Gracias .
>
> Juan José García .
> BISOFT
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Problema muy serio cn RC2 y MySql
Ignacio Ortiz de Zúñiga escribió:
> Juan José,
>
> Con el código que incluyes es realmente difícil llegar a ninguna conclusión.
>
> Antes de nada querría que comprobases lo siguiente:
>
> 1) Existe algún tipo de TRY..CATCH en el código?
> 2) Se han deshabilitado los errores en el datasource?
> 3) La clave primaria la compone SOLO el campo ID? (Deberia haber provocado
> un error MySQL)
> 4) Existe algún campo BLOB de gran tamaño (más de 1 Mega)
>
> A priori es extraño que vayan bien en 3.000 registros y luego empiece a
> fallar. No tiene mucho sentido. Me temo que es muy probable que tengas que
> mandarnos la DBF y la definición de la tabla en MySQL, pero vamos a intentar
> primero ver si es otra cosa.
>
> En cualquier caso, te recomiendo que cambies completamente la forma de hacer
> la importación si quieres múltiplicar por 100 la velocidad de importación y
> me explico:
>
> MySQL permite la creación de INSERTS múltiples. Algo así:
>
> INSERT INTO X (a,b) VALUES ('1', 'one'), ('2', 'two'), ('3', 'three'),
>
> Te propongo que construyas la cadena INSERT completa utilizando esta
> facilidad. Cuando la cadena supere los 512 kb (por ejemplo) haces un
> oDS:Execute() de ella y la pones en blanco y vuelta a empezar hasta que
> hayas procesado la totalidad del fichero DBF. Estoy convencido que
> multiplicaras por 100 la velocidad de traspaso.
>
> Un saludo,
>
He seguido tus suguerencias de usar sentencias INSERT INTO y
efectivamente funcionó .
Por otra parte creo haber determinado el error al usar dataset.
Uno de los campos de la tabla sql era CHAR(100) y por otro lado en la
DBF tenía una longitud CHAR(120)
Lo que sucedía basicamente era que al grabar los registros, mysql
generaba un warning (truncate del campo). El problema es que aunque el
dataset tenia el atributo lDisplayErrors igual a .t. , no avisó en
ningún momento del error , ni grabó el registro .
Este error sí se notificó con el INSERT INTO que usé más tarde y pude
correguirlo .
Entiendo que debeis repasar el funcionamiento del DataSet para
determinar o que avise del warning y se pare o hacer el ajuste del campo
y que grabe el registro .Lo que hace actualmente : no avisar y no grabar
puede crear mucha incertidumbre en los usuario del MySqlDataSet.
Un saludo .Juan José Garcia
BiSoft
> Juan José,
>
> Con el código que incluyes es realmente difícil llegar a ninguna conclusión.
>
> Antes de nada querría que comprobases lo siguiente:
>
> 1) Existe algún tipo de TRY..CATCH en el código?
> 2) Se han deshabilitado los errores en el datasource?
> 3) La clave primaria la compone SOLO el campo ID? (Deberia haber provocado
> un error MySQL)
> 4) Existe algún campo BLOB de gran tamaño (más de 1 Mega)
>
> A priori es extraño que vayan bien en 3.000 registros y luego empiece a
> fallar. No tiene mucho sentido. Me temo que es muy probable que tengas que
> mandarnos la DBF y la definición de la tabla en MySQL, pero vamos a intentar
> primero ver si es otra cosa.
>
> En cualquier caso, te recomiendo que cambies completamente la forma de hacer
> la importación si quieres múltiplicar por 100 la velocidad de importación y
> me explico:
>
> MySQL permite la creación de INSERTS múltiples. Algo así:
>
> INSERT INTO X (a,b) VALUES ('1', 'one'), ('2', 'two'), ('3', 'three'),
>
> Te propongo que construyas la cadena INSERT completa utilizando esta
> facilidad. Cuando la cadena supere los 512 kb (por ejemplo) haces un
> oDS:Execute() de ella y la pones en blanco y vuelta a empezar hasta que
> hayas procesado la totalidad del fichero DBF. Estoy convencido que
> multiplicaras por 100 la velocidad de traspaso.
>
> Un saludo,
>
He seguido tus suguerencias de usar sentencias INSERT INTO y
efectivamente funcionó .
Por otra parte creo haber determinado el error al usar dataset.
Uno de los campos de la tabla sql era CHAR(100) y por otro lado en la
DBF tenía una longitud CHAR(120)
Lo que sucedía basicamente era que al grabar los registros, mysql
generaba un warning (truncate del campo). El problema es que aunque el
dataset tenia el atributo lDisplayErrors igual a .t. , no avisó en
ningún momento del error , ni grabó el registro .
Este error sí se notificó con el INSERT INTO que usé más tarde y pude
correguirlo .
Entiendo que debeis repasar el funcionamiento del DataSet para
determinar o que avise del warning y se pare o hacer el ajuste del campo
y que grabe el registro .Lo que hace actualmente : no avisar y no grabar
puede crear mucha incertidumbre en los usuario del MySqlDataSet.
Un saludo .Juan José Garcia
BiSoft
Problema muy serio cn RC2 y MySql
Juanjo,
> Por otra parte creo haber determinado el error al usar dataset.
>
> Uno de los campos de la tabla sql era CHAR(100) y por otro lado en la DBF
> tenía una longitud CHAR(120)
>
> Lo que sucedía basicamente era que al grabar los registros, mysql generaba
> un warning (truncate del campo). El problema es que aunque el dataset
> tenia el atributo lDisplayErrors igual a .t. , no avisó en ningún momento
> del error , ni grabó el registro .
He estado probándolo esta mañana, y he visto lo siguiente:
- El error de desbordamiento de campo sólo ocurre cuando el servidor está
configurado en modo "strict" (estricto). Es un checkbox que aparece en una
de las páginas al instalar o configurar el servidor de mysql.
- El error se produce solamente cuando los caracteres extra de la cadena no
son espacios. Si son espacios, el servidor lo graba correctamente sin
generar ningún error.
- TMySqlDataSource no tenía en cuenta los valores de lDisplayErrors y
lAbortOnErrors, pero no es que no mostrara los errores, sino que los
mostraba siempre. En la versión 2.0 final que se ha publicado esta tarde ya
está corregido.
Por favor, comprúebalo de nuevo, y si te sigue fallando envíanos un pequeño
ejemplo.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
> Por otra parte creo haber determinado el error al usar dataset.
>
> Uno de los campos de la tabla sql era CHAR(100) y por otro lado en la DBF
> tenía una longitud CHAR(120)
>
> Lo que sucedía basicamente era que al grabar los registros, mysql generaba
> un warning (truncate del campo). El problema es que aunque el dataset
> tenia el atributo lDisplayErrors igual a .t. , no avisó en ningún momento
> del error , ni grabó el registro .
He estado probándolo esta mañana, y he visto lo siguiente:
- El error de desbordamiento de campo sólo ocurre cuando el servidor está
configurado en modo "strict" (estricto). Es un checkbox que aparece en una
de las páginas al instalar o configurar el servidor de mysql.
- El error se produce solamente cuando los caracteres extra de la cadena no
son espacios. Si son espacios, el servidor lo graba correctamente sin
generar ningún error.
- TMySqlDataSource no tenía en cuenta los valores de lDisplayErrors y
lAbortOnErrors, pero no es que no mostrara los errores, sino que los
mostraba siempre. En la versión 2.0 final que se ha publicado esta tarde ya
está corregido.
Por favor, comprúebalo de nuevo, y si te sigue fallando envíanos un pequeño
ejemplo.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
Problema muy serio cn RC2 y MySql
Juano,
> Por favor, comprúebalo de nuevo, y si te sigue fallando envíanos un
> pequeño ejemplo.
O llévatelo a Murcia y lo vemos allí el próximo sábado.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
> Por favor, comprúebalo de nuevo, y si te sigue fallando envíanos un
> pequeño ejemplo.
O llévatelo a Murcia y lo vemos allí el próximo sábado.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info