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.

Error En dataset de mysql

Foro de Xailer profesional en español
Responder
etrasvina
Mensajes: 34
Registrado: Dom May 21, 2006 6:56 am

Error En dataset de mysql

Mensaje por etrasvina »

This is a multi-part message in MIME format.
------=_NextPart_000_0065_01C6D46F.3D4861D0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0066_01C6D46F.3D4861D0"
------=_NextPart_001_0066_01C6D46F.3D4861D0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hola. he creado un formulario con 5 controles tedit......... al salir =
de la edicion de cada uno de ellos en el evento onexit reviso si el =
codigo ingresado existe en algunas tablas de una base de datos de =
mysql..... en cada onexit tengo esta rutina........=20
----METHOD gempleadoExit( oSender, oNextCtl ) CLASS nop312
local cpaso,carma
cpaso:=3Dtrim(::gempleado:value)
cpaso:=3Dreplicate("0",6-len(cpaso))+cpaso
if ::odataset<>nil
::odataset:end()
::odataset:=3Dnil
endif
carma:=3D"select * from empleados where empleado=3D'"+cpaso+"'"
::odataset:=3D::origen1:NewDataSet(carma)
::odataset:Open() =
/*<=3D=3D=3D=3D=3D=3D=3D=3D=3D=3Daqui marca error*/
if !::odataset:reccount()>0
::gempleado:value:=3D::odataset:empleado
::gnombre:value:=3D::odataset:nombre
endif
---RETURN Nil
-----METHOD gloteExit( oSender, oNextCtl ) CLASS nop312
local cpaso,carma
cpaso:=3Dtrim(::glote:value)
cpaso:=3Dreplicate("0",3-len(cpaso))+cpaso
if ::odataset<>nil
::odataset:end()
::oDataset:=3Dnil
endif
carma:=3D"select * from lotes where lote=3D'"+cpaso+"'"
::odataset:=3D::origen1:NewDataSet(carma)
::odataset:Open() /*<=3D=3D=3D=3D=3D=3D=3D=3D=3D=3Daqui marca =
error*/
if !::odataset:reccount()>0
::glote:value:=3D::odataset:lote
::gdeslot:value:=3D::odataset:nombre
endif
----RETURN Nil
utilizo la misma variable (::odataset) para ir revisando cada =
dato........ lo curioso es que este error solo me lo marca cuando =
tecleo demasiado rapido (solo enters)..... si repaso estos campos en =
forma lenta no me aparece el error...... me ha salido el error en =
cualquier ::odataset:open() del formulario....... todo depende en donde =
haga la captura rapida......
------=_NextPart_001_0066_01C6D46F.3D4861D0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2963" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=3DArial size=3D2>Hola.ÂÂÂ he creado un =
formulario con=20
5 controles tedit......... al salir de la edicion de cada uno de ellos =
en el=20
evento onexit reviso si el codigo ingresado existe en algunas tablas de =
una base=20
de datos de mysql.....ÂÂ en cada onexit tengo esta =
rutina........=20
</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>----METHOD gempleadoExit( oSender, =
oNextCtl ) CLASS=20
nop312</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â local cpaso,carma</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â =
cpaso:=3Dtrim(::gempleado:value)<BR>Â=20
cpaso:=3Dreplicate("0",6-len(cpaso))+cpaso</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â if=20
::odataset<>nil<BR>ÂÂÂ=20
::odataset:end()<BR>ÂÂÂ ::odataset:=3Dnil<BR>Â=20
endif</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â carma:=3D"select * from =
empleados where=20
empleado=3D'"+cpaso+"'"</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â=20
::odataset:=3D::origen1:NewDataSet(carma)<BR><STRONG><FONT =
color=3D#ff0000>Â=20
::odataset:Open()ÂÂÂÂ&am p;nbsp;ÂÂÂÂ&n=
bsp;ÂÂÂÂÂ&n bsp;=20
/*<=3D=3D=3D=3D=3D=3D=3D=3D=3D=3Daqui marca =
error*/</FONT></STRONG></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â if =
!::odataset:reccount()>0</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Â Â=20
::gempleado:value:=3D::odataset:empleado<BR>ÂÂÂ=20
::gnombre:value:=3D::odataset:nombre</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Â endif</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>---RETURN Nil<BR></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>-----METHOD gloteExit( oSender, =
oNextCtl ) CLASS=20
nop312</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â local cpaso,carma</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â =
cpaso:=3Dtrim(::glote:value)<BR>Â=20
cpaso:=3Dreplicate("0",3-len(cpaso))+cpaso</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â if=20
::odataset<>nil<BR>ÂÂÂ=20
::odataset:end()<BR>ÂÂÂ ::oDataset:=3Dnil<BR>Â=20
endif</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â carma:=3D"select * from lotes =
where=20
lote=3D'"+cpaso+"'"</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â=20
::odataset:=3D::origen1:NewDataSet(carma)<BR><STRONG><FONT =
color=3D#ff0000>Â=20
::odataset:Open()ÂÂÂÂ&am p;nbsp;ÂÂÂÂ=20
/*<=3D=3D=3D=3D=3D=3D=3D=3D=3D=3Daqui marca =
error*/</FONT></STRONG></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Â if =
!::odataset:reccount()>0</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Â Â=20
::glote:value:=3D::odataset:lote<BR>ÂÂÂ=20
::gdeslot:value:=3D::odataset:nombre</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Â endif</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>----RETURN Nil<BR></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>utilizo la misma variable (::odataset) =
para ir=20
revisando cada dato........ÂÂ lo curioso es que este error =
solo me lo=20
marca cuando tecleo demasiado rapido (solo enters).....ÂÂ si =
repaso=20
estos campos en forma lenta no me aparece el =
error......ÂÂÂÂ=20
me ha salido el error en cualquier ::odataset:open() del =
formulario....... todo=20
depende en donde haga la captura rapida......</FONT></DIV></BODY></HTML>
------=_NextPart_001_0066_01C6D46F.3D4861D0--
------=_NextPart_000_0065_01C6D46F.3D4861D0
Content-Type: application/octet-stream;
name="Error.log"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="Error.log"
***************************** Registro de errores =
*****************************
Fecha: 2006/09/10
Hora: 00:08:20
Memoria libre: 106844
Area actual: 4
------------------------- Informaci=F3n del compilador =
--------------------------
Versi=F3n Xailer: Xailer 1.0.2 Version 1.0b
Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: =
7
Compilador C/C++: Borland C++ 5.5.1
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Informaci=F3n detallada del error =
-----------------------
Subsistema: BASE
C=F3digo de error: 1004
Estado: .F.
Descripci=F3n: Class: 'NIL' has no exported method
Operaci=F3n: DROPSTATEMENT
Argumentos: [ 1] =3D Tipo: N Valor: 12069072
Fichero:=20
C=F3digo error SO: 0
Pila de llamadas:
(b)XODBCDATASET:XODBCDATASET (91)
TODBCDATASET:DROPSTATEMENT (0)
TODBCDATASET:FILL (376)
(b)XODBCDATASET:XODBCDATASET (65)
TODBCDATASET:COMPLETE (0)
TODBCDATASET:OPEN (212)
NOP312:GLOTEEXIT (1474)
TEDIT:ONEXIT (0)
TEDIT:VALID (907)
NOP312:GONEXTCONTROL (0)
NOP312:WMKEYDOWN (561)
TWINCONTROL:WMKEYDOWN (966)
TFOLDER:WMKEYDOWN (443)
TFOLDERPAGE:WMKEYDOWN (966)
TSTDCONTROL:WMKEYDOWN (966)
TEDIT:WMKEYDOWN (502)
RUNFORM (0)
TAPPLICATION:RUN (193)
MAIN (15)
------------------ Informaci=F3n detallada de =E1reas de trabajo =
------------------
Area: 1
Alias: INI
Registro: 1
Filtro:=20
Relaci=F3n:=20
Orden del =EDndice: 0
Clave activa: 0
Area: 2
Alias: XA_DATASET
Registro: 1
Filtro:=20
Relaci=F3n:=20
Orden del =EDndice: 0
Clave activa: 0
Area: 3
Alias: AA0063
Registro: 1
Filtro:=20
Relaci=F3n:=20
Orden del =EDndice: 0
Clave activa: 0
Area: 4
Alias: XA_DATASE0
Registro: 1
Filtro:=20
Relaci=F3n:=20
Orden del =EDndice: 0
Clave activa: 0
Area: 5
Alias: XA_DATASE1
Registro: 1
Filtro:=20
Relaci=F3n:=20
Orden del =EDndice: 0
Clave activa: 0
Area: 6
Alias: XA_DATASE2
Registro: 1
Filtro:=20
Relaci=F3n:=20
Orden del =EDndice: 0
Clave activa: 0
------=_NextPart_000_0065_01C6D46F.3D4861D0--
Avatar de Usuario
jasm
Mensajes: 447
Registrado: Mar Jul 08, 2008 8:12 pm

Error En dataset de mysql

Mensaje por jasm »

Eduardo,
Creo que debes usar dos datasets. Uno para la edicion y otro para las
comprobaciones.
Saludos
José Alfonso Suárez Moreno
etrasvina
Mensajes: 34
Registrado: Dom May 21, 2006 6:56 am

Error En dataset de mysql

Mensaje por etrasvina »

De hecho uso la variable odataset solo para revisar existencias en tablas
secundarias...... para la edicion.. y grabacion de la captura utilizo otro
dataset (odatacap)..... de hecho ya lo probe con un dataset diferente para
cada tedit y el problema persistio... por lo que lo regrese el programa a su
situacion original...... no quiero utilizar indiscriminadamente datasets
para no recargar ...algo. gracias por tu ayuda Jose Alfonso..........
Saludos!
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:4503bc39$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Eduardo,
>
> Creo que debes usar dos datasets. Uno para la edicion y otro para las
> comprobaciones.
>
> Saludos
>
> José Alfonso Suárez Moreno
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Error En dataset de mysql

Mensaje por ignacio »

Eduardo,
Sin un ejemplo completo me es imposible saber que está pasando. No obstante, para las comprobaciones que estás haciendo es mucho más lógico utilizar los métodos QueryArray, QueryRow o QueryValue. Y en cualquier caso no recomiendo estar reutilizando un TDataSet como estás haciendo, es preferible que crees un DataSet LOCAL en cada método.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Eduardo Trasviña" <etrasvina@gmail.com> escribió en el mensaje news:[email=4503af35@news.xailer.com...]4503af35@news.xailer.com...[/email]
Hola. he creado un formulario con 5 controles tedit......... al salir de la edicion de cada uno de ellos en el evento onexit reviso si el codigo ingresado existe en algunas tablas de una base de datos de mysql..... en cada onexit tengo esta rutina........
----METHOD gempleadoExit( oSender, oNextCtl ) CLASS nop312
local cpaso,carma
cpaso:=trim(::gempleado:value)
cpaso:=replicate("0",6-len(cpaso))+cpaso
if ::odataset<>nil
::odataset:end()
::odataset:=nil
endif
carma:="select * from empleados where empleado='"+cpaso+"'"
::odataset:=::origen1:NewDataSet(carma)
::odataset:Open() /*<==========aqui marca error*/
if !::odataset:reccount()>0
::gempleado:value:=::odataset:empleado
::gnombre:value:=::odataset:nombre
endif
---RETURN Nil
-----METHOD gloteExit( oSender, oNextCtl ) CLASS nop312
local cpaso,carma
cpaso:=trim(::glote:value)
cpaso:=replicate("0",3-len(cpaso))+cpaso
if ::odataset<>nil
::odataset:end()
::oDataset:=nil
endif
carma:="select * from lotes where lote='"+cpaso+"'"
::odataset:=::origen1:NewDataSet(carma)
::odataset:Open() /*<==========aqui marca error*/
if !::odataset:reccount()>0
::glote:value:=::odataset:lote
::gdeslot:value:=::odataset:nombre
endif
----RETURN Nil
utilizo la misma variable (::odataset) para ir revisando cada dato........ lo curioso es que este error solo me lo marca cuando tecleo demasiado rapido (solo enters)..... si repaso estos campos en forma lenta no me aparece el error...... me ha salido el error en cualquier ::odataset:open() del formulario....... todo depende en donde haga la captura rapida......
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
etrasvina
Mensajes: 34
Registrado: Dom May 21, 2006 6:56 am

Error En dataset de mysql

Mensaje por etrasvina »

Ignacio...... hice los cambios que sugeriste...... probe..... y todo va muy bien.... Gracias..!! :)
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje news:4505130a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
Eduardo,
Sin un ejemplo completo me es imposible saber que está pasando. No obstante, para las comprobaciones que estás haciendo es mucho más lógico utilizar los métodos QueryArray, QueryRow o QueryValue. Y en cualquier caso no recomiendo estar reutilizando un TDataSet como estás haciendo, es preferible que crees un DataSet LOCAL en cada método.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Eduardo Trasviña" <etrasvina@gmail.com> escribió en el mensaje news:[email=4503af35@news.xailer.com...]4503af35@news.xailer.com...[/email]
Hola. he creado un formulario con 5 controles tedit......... al salir de la edicion de cada uno de ellos en el evento onexit reviso si el codigo ingresado existe en algunas tablas de una base de datos de mysql..... en cada onexit tengo esta rutina........
----METHOD gempleadoExit( oSender, oNextCtl ) CLASS nop312
local cpaso,carma
cpaso:=trim(::gempleado:value)
cpaso:=replicate("0",6-len(cpaso))+cpaso
if ::odataset<>nil
::odataset:end()
::odataset:=nil
endif
carma:="select * from empleados where empleado='"+cpaso+"'"
::odataset:=::origen1:NewDataSet(carma)
::odataset:Open() /*<==========aqui marca error*/
if !::odataset:reccount()>0
::gempleado:value:=::odataset:empleado
::gnombre:value:=::odataset:nombre
endif
---RETURN Nil
-----METHOD gloteExit( oSender, oNextCtl ) CLASS nop312
local cpaso,carma
cpaso:=trim(::glote:value)
cpaso:=replicate("0",3-len(cpaso))+cpaso
if ::odataset<>nil
::odataset:end()
::oDataset:=nil
endif
carma:="select * from lotes where lote='"+cpaso+"'"
::odataset:=::origen1:NewDataSet(carma)
::odataset:Open() /*<==========aqui marca error*/
if !::odataset:reccount()>0
::glote:value:=::odataset:lote
::gdeslot:value:=::odataset:nombre
endif
----RETURN Nil
utilizo la misma variable (::odataset) para ir revisando cada dato........ lo curioso es que este error solo me lo marca cuando tecleo demasiado rapido (solo enters)..... si repaso estos campos en forma lenta no me aparece el error...... me ha salido el error en cualquier ::odataset:open() del formulario....... todo depende en donde haga la captura rapida......
--
Responder