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.

Tablas grandes MySQL

Foro de Xailer profesional en español
Responder
Javier Morales
Mensajes: 8
Registrado: Mar Mar 04, 2008 10:07 am

Tablas grandes MySQL

Mensaje por Javier Morales »

Hola a todos.
Tengo un dilema que no me deja avanzar ya que no tengo mucha experiencia con
MySQL (ni con Xailer). El problema es el siguiente:
adjunto paso un ejemplo muy resumido de un modulo de la aplicacion que estoy
haciendo.
En un principio utilizaba un TSQLTable, pero tardaba mucho tiempo en mostrar
los datos en el browse ya que al abrirlo se subia toda la tabla, pero lo que
es la edicion y el añadido de registros funciona perfecto. Entonces lo
sustituí por un TSQLQuery con la siguiente instruccion en la propiedad
cSelect: "Select id, orden, Poblacion_n From Personal". De esta forma gana
sustancialmente en velocidad a la hora de cargar el browse, pero es en
editar/añadir donde me surge el problema. Cuando edito/añado registro activo
solo me muestra valores en los TDBEdit que corresponden con los campos que
recupera el TDataSet.
La pregunta es: ¿Como puedo recuperar el resto de campos del registro activo
para poder editar o añadir?
He de aclarar que la tabla que utilizo de Personal tiene unos 15000
registros y 40 campos aprox.
¿Como podria solucionar esto?
Muchas gracias de antemano.
Javier Morales


Attached files ejemplo mysql.rar (10.9 KB)Â
Avatar de Usuario
jasm
Mensajes: 447
Registrado: Mar Jul 08, 2008 8:12 pm

Tablas grandes MySQL

Mensaje por jasm »

Hola Javier,
Cuando se trabaja con sistemas cliente/servidor hemos de cambiar
radicalmente la costumbre de trabajar con dbf.
Para empezar, debes mostrar sólo parte de la tabla tanto en lo relativo
a filas como a columnas. (Personalmente pienso que el TSQLTable es un
atraso, pero para gustos: los colores).
Debes programar tus browses con sistemas de búsqueda para poder acceder
al contenido de la tabla, así­, por ejemplo, muestras todos las filas
entre la "A" y la "AZ", y programas un sistema de busqueda para avanzar
por la tabla.
Por supuesto, el browse que muestras deberá ser un dataset y cuando
edites deberá ser otro; me explico: en el browse muestras "codigo,
nombre, telefono", pero para editar necesitas el resto de los datos, por
lo que tendrás que tener otro dataset al que le pases una consulta del
tipo "SELECT * FROM cliente WHERE codigo = " + Str( oDatasetBrowse:Codigo ).
Si te gustó y quieres más ayuda, a tu disposición.
Un saludo,
Alf+.
Javier Morales escribió:
> Hola a todos.
>
> Tengo un dilema que no me deja avanzar ya que no tengo mucha experiencia con
> MySQL (ni con Xailer). El problema es el siguiente:
> adjunto paso un ejemplo muy resumido de un modulo de la aplicacion que estoy
> haciendo.
>
> En un principio utilizaba un TSQLTable, pero tardaba mucho tiempo en mostrar
> los datos en el browse ya que al abrirlo se subia toda la tabla, pero lo que
> es la edicion y el añadido de registros funciona perfecto. Entonces lo
> sustituí­ por un TSQLQuery con la siguiente instruccion en la propiedad
> cSelect: "Select id, orden, Poblacion_n From Personal". De esta forma gana
> sustancialmente en velocidad a la hora de cargar el browse, pero es en
> editar/añadir donde me surge el problema. Cuando edito/añado registro activo
> solo me muestra valores en los TDBEdit que corresponden con los campos que
> recupera el TDataSet.
> La pregunta es: ¿Como puedo recuperar el resto de campos del registro activo
> para poder editar o añadir?
>
> He de aclarar que la tabla que utilizo de Personal tiene unos 15000
> registros y 40 campos aprox.
>
>
> ¿Como podria solucionar esto?
>
> Muchas gracias de antemano.
>
> Javier Morales
>
>
Avatar de Usuario
Carlos Ortiz
Mensajes: 872
Registrado: Mié Jul 01, 2009 5:44 pm
Ubicación: Argentina - Córdoba
Contactar:

Tablas grandes MySQL

Mensaje por Carlos Ortiz »

Gracias José, yo no pregunte nada pero me re interesan estas ayudas.
Atte. CO.
Rene Flores
Mensajes: 620
Registrado: Jue Mar 23, 2006 2:39 am

Tablas grandes MySQL

Mensaje por Rene Flores »

Javier:
Uno de los grandes errores de los programadores que recien comienzan a
trabajar con SQL es queter trabajarlos como si fueran DBFs.
Un SQL no fue diseñado para "browsesar" datos, no sigue el modelo
"navegacional" de DBFs
En un SQL, como bien dice Jose Alfonso cada query tiene que recuperar la
menor cantidad de informacion posible, por ello un SELECT * FORM TABLA
tiene que ser evitado en lo posible.
Eso requiere hace cambios en el diseño de las tablas y en la forma de
pensar para el programa funcione bien y rapido.
Saludos
Rene Flores
http://www.ciber-tec.com
Morales escribió:
> Hola a todos.
>
> Tengo un dilema que no me deja avanzar ya que no tengo mucha experiencia con
> MySQL (ni con Xailer). El problema es el siguiente:
> adjunto paso un ejemplo muy resumido de un modulo de la aplicacion que estoy
> haciendo.
>
> En un principio utilizaba un TSQLTable, pero tardaba mucho tiempo en mostrar
> los datos en el browse ya que al abrirlo se subia toda la tabla, pero lo que
> es la edicion y el añadido de registros funciona perfecto. Entonces lo
> sustituí­ por un TSQLQuery con la siguiente instruccion en la propiedad
> cSelect: "Select id, orden, Poblacion_n From Personal". De esta forma gana
> sustancialmente en velocidad a la hora de cargar el browse, pero es en
> editar/añadir donde me surge el problema. Cuando edito/añado registro activo
> solo me muestra valores en los TDBEdit que corresponden con los campos que
> recupera el TDataSet.
> La pregunta es: ¿Como puedo recuperar el resto de campos del registro activo
> para poder editar o añadir?
>
> He de aclarar que la tabla que utilizo de Personal tiene unos 15000
> registros y 40 campos aprox.
>
>
> ¿Como podria solucionar esto?
>
> Muchas gracias de antemano.
>
> Javier Morales
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9253
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Tablas grandes MySQL

Mensaje por ignacio »

This is a multi-part message in MIME format.
------=_NextPart_000_0016_01C8CC71.3D73A920
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0017_01C8CC71.3D73A920"
------=_NextPart_001_0017_01C8CC71.3D73A920
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Javier,=20
Creo que Jos=E9 Alfonso lo ha explicado estupendamente.=20
Yo soy partidario de hacer un QBE (Query by example) en cada Browse. =
Algo as=ED:
En definitiva forzar un filtro antes de mostrar absolutamente toda la =
tabla. En este ejemplo, si el usuario quiere poner un rango de fechas de =
varios a=F1os, obtendr=E1 la tabla entera, pero incluso eso se deber=EDa =
controlar en entornos con muchos usuarios ya que una consulta tan pesada =
podr=EDa afectar de forma importante al servidor de BBDD.
Un saludo,
--=20
Ignacio Ortiz de Z=FA=F1iga
[Soporte Xailer]
[Xailer support]
"Jos=E9 Alfonso Su=E1rez Moreno" <jasm@tpvsoft.com> escribi=F3 en el =
mensaje news:48504651$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola Javier,
>=20
> Cuando se trabaja con sistemas cliente/servidor hemos de cambiar=20
> radicalmente la costumbre de trabajar con dbf.
>=20
> Para empezar, debes mostrar s=F3lo parte de la tabla tanto en lo =
relativo=20
> a filas como a columnas. (Personalmente pienso que el TSQLTable es un=20
> atraso, pero para gustos: los colores).
>=20
> Debes programar tus browses con sistemas de b=FAsqueda para poder =
acceder=20
> al contenido de la tabla, as=ED, por ejemplo, muestras todos las filas =
> entre la "A" y la "AZ", y programas un sistema de busqueda para =
avanzar=20
> por la tabla.
>=20
> Por supuesto, el browse que muestras deber=E1 ser un dataset y cuando=20
> edites deber=E1 ser otro; me explico: en el browse muestras "codigo,=20
> nombre, telefono", pero para editar necesitas el resto de los datos, =
por=20
> lo que tendr=E1s que tener otro dataset al que le pases una consulta =
del=20
> tipo "SELECT * FROM cliente WHERE codigo =3D " + Str( =
oDatasetBrowse:Codigo ).
>=20
> Si te gust=F3 y quieres m=E1s ayuda, a tu disposici=F3n.
>=20
> Un saludo,
>=20
> Alf+.
>=20
>=20
> Javier Morales escribi=F3:
>> Hola a todos.
>>=20
>> Tengo un dilema que no me deja avanzar ya que no tengo mucha =
experiencia con=20
>> MySQL (ni con Xailer). El problema es el siguiente:
>> adjunto paso un ejemplo muy resumido de un modulo de la aplicacion =
que estoy=20
>> haciendo.
>>=20
>> En un principio utilizaba un TSQLTable, pero tardaba mucho tiempo en =
mostrar=20
>> los datos en el browse ya que al abrirlo se subia toda la tabla, pero =
lo que=20
>> es la edicion y el a=F1adido de registros funciona perfecto. Entonces =
lo=20
>> sustitu=ED por un TSQLQuery con la siguiente instruccion en la =
propiedad=20
>> cSelect: "Select id, orden, Poblacion_n From Personal". De esta =
forma gana=20
>> sustancialmente en velocidad a la hora de cargar el browse, pero es =
en=20
>> editar/a=F1adir donde me surge el problema. Cuando edito/a=F1ado =
registro activo=20
>> solo me muestra valores en los TDBEdit que corresponden con los =
campos que=20
>> recupera el TDataSet.
>> La pregunta es: =BFComo puedo recuperar el resto de campos del =
registro activo=20
>> para poder editar o a=F1adir?
>>=20
>> He de aclarar que la tabla que utilizo de Personal tiene unos 15000=20
>> registros y 40 campos aprox.
>>=20
>>=20
>> =BFComo podria solucionar esto?
>>=20
>> Muchas gracias de antemano.
>>=20
>> Javier Morales=20
>>=20
>>
------=_NextPart_001_0017_01C8CC71.3D73A920
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.6000.16674" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=3DArial size=3D2>Javier, </FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Creo que Jos=E9 Alfonso lo ha explicado =
estupendamente. </FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Yo soy partidario de hacer un QBE =
(Query by=20
example) en cada Browse. Algo as=ED:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><IMG alt=3D"" hspace=3D0 =
src=3D"cid:A4663F96A0A44B05BA4DA125F8198800@ozlan.local"=20
align=3Dbaseline border=3D0></DIV>
<DIV><BR><FONT face=3DArial size=3D2>En definitiva forzar un filtro =
antes de mostrar=20
absolutamente toda la tabla. En este ejemplo, si el usuario quiere poner =
un=20
rango de fechas de varios a=F1os, obtendr=E1 la tabla entera, pero =
incluso eso se=20
deber=EDa controlar en entornos con muchos usuarios ya que una consulta =
tan pesada=20
podr=EDa afectar de forma importante al servidor de BBDD.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>Un saludo,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>-- <BR>Ignacio Ortiz de =
Z=FA=F1iga<BR>[Soporte=20
Xailer]<BR>[Xailer support]</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>Â</DIV>
<DIV><FONT face=3DArial size=3D2>"Jos=E9 Alfonso Su=E1rez Moreno" =
<</FONT><A=20
href=3D"mailto:jasm@tpvsoft.com"><FONT face=3DArial=20
size=3D2>jasm@tpvsoft.com</FONT></A><FONT face=3DArial size=3D2>> =
escribi=F3 en el=20
mensaje </FONT><A href=3D"news:48504651$1@ozsrv2.ozlan.local"><FONT =
face=3DArial=20
size=3D2>news:48504651$1@ozsrv2.ozlan.local</FONT></A><FONT face=3DArial =
size=3D2>...</FONT></DIV><FONT face=3DArial size=3D2>> Hola =
Javier,<BR>>=20
<BR>> Cuando se trabaja con sistemas cliente/servidor hemos de =
cambiar=20
<BR>> radicalmente la costumbre de trabajar con dbf.<BR>> <BR>> =
Para=20
empezar, debes mostrar s=F3lo parte de la tabla tanto en lo relativo =
<BR>> a=20
filas como a columnas. (Personalmente pienso que el TSQLTable es un =
<BR>>=20
atraso, pero para gustos: los colores).<BR>> <BR>> Debes programar =
tus=20
browses con sistemas de b=FAsqueda para poder acceder <BR>> al =
contenido de la=20
tabla, as=ED, por ejemplo, muestras todos las filas <BR>> entre la =
"A" y la=20
"AZ", y programas un sistema de busqueda para avanzar <BR>> por la=20
tabla.<BR>> <BR>> Por supuesto, el browse que muestras deber=E1 =
ser un=20
dataset y cuando <BR>> edites deber=E1 ser otro; me explico: en el =
browse=20
muestras "codigo, <BR>> nombre, telefono", pero para editar necesitas =
el=20
resto de los datos, por <BR>> lo que tendr=E1s que tener otro dataset =
al que le=20
pases una consulta del <BR>> tipo "SELECT * FROM cliente WHERE codigo =
=3D " +=20
Str( oDatasetBrowse:Codigo ).<BR>> <BR>> Si te gust=F3 y quieres =
m=E1s ayuda,=20
a tu disposici=F3n.<BR>> <BR>> Un saludo,<BR>> <BR>> =
Alf+.<BR>>=20
<BR>> <BR>> Javier Morales escribi=F3:<BR>>> Hola a =
todos.<BR>>>=20
<BR>>> Tengo un dilema que no me deja avanzar ya que no tengo =
mucha=20
experiencia con <BR>>> MySQL (ni con Xailer). El problema es el=20
siguiente:<BR>>> adjunto paso un ejemplo muy resumido de un modulo =
de la=20
aplicacion que estoy <BR>>> haciendo.<BR>>> <BR>>> En =
un=20
principio utilizaba un TSQLTable, pero tardaba mucho tiempo en mostrar=20
<BR>>> los datos en el browse ya que al abrirlo se subia toda la =
tabla,=20
pero lo que <BR>>> es la edicion y el a=F1adido de registros =
funciona=20
perfecto. Entonces lo <BR>>> sustitu=ED por un TSQLQuery con la =
siguiente=20
instruccion en la propiedad <BR>>> cSelect: "Select id, orden,=20
Poblacion_n From Personal". De esta forma gana <BR>>>=20
sustancialmente en velocidad a la hora de cargar el browse, pero es en=20
<BR>>> editar/a=F1adir donde me surge el problema. Cuando =
edito/a=F1ado=20
registro activo <BR>>> solo me muestra valores en los TDBEdit que=20
corresponden con los campos que <BR>>> recupera el =
TDataSet.<BR>>>=20
La pregunta es: =BFComo puedo recuperar el resto de campos del registro =
activo=20
<BR>>> para poder editar o a=F1adir?<BR>>> <BR>>> He =
de aclarar=20
que la tabla que utilizo de Personal tiene unos 15000 <BR>>> =
registros y=20
40 campos aprox.<BR>>> <BR>>> <BR>>> =BFComo podria =
solucionar=20
esto?<BR>>> <BR>>> Muchas gracias de antemano.<BR>>>=20
<BR>>> Javier Morales <BR>>> =
<BR>>></FONT></BODY></HTML>
------=_NextPart_001_0017_01C8CC71.3D73A920--
------=_NextPart_000_0016_01C8CC71.3D73A920
Content-Type: image/png;
name="2008-06-10_142130.png"
Content-Transfer-Encoding: base64
Content-ID: <A4663F96A0A44B05BA4DA125F8198800@ozlan.local>
iVBORw0KGgoAAAANSUhEUgAAAkwAAADXCAIAAABnOJk9AAAABmJLR0QAAAAA AAD5Q7t/AAAACXBI
WXMAAA7EAAAOxAGVKw4bAAAZOElEQVR4nO2bW3Mcx3mG5welUpU7p8rXuctV fkH+Riq2ZSc+J6nS
TVypSJblk+wkjiPJtkTZkloSKYGkQOMgnsUTTgR2lyDBMwlQyoBLDAYzPT3f 9G5/7Gk8bz0Xsz3d
Pfsdpl8QJLOtrUErt26uDzeurS6fP3Xqo9FoKefGaLnCqMSN3Qm7jOxYZso5 uNW1PfYHS5OvFdiW
WDi4pOBqQenu/uBoeG3MjTLFzOHVfYp9hvvU7zYyrOG+2z7zSgn3DleiYHB5 H+ugmwNb7TG8bMG+
wyUb1rvub2Ldx8rnJVonqDIsURq8WFCafLGgdNeC+26HmRv7DPcYDS7sU0yw 7TkcXCgolgw3zheM
Ni7UKa96tnZ35jNKa0sUmw/O71PMHJTYcDG0YV0+3DhXUNwtDZZ32Jt24Fnn xhzYxzYoZ8Lltg3P
FuQfs80bq03cGK2MGQ6urq1cWLqyiMlhcs8Zq2O1OIptyRCTmxRMDpPbmzCR S0243LbhQZNbuXam
ieWrp8dcu7xw6fzshbMnFhY+weQwueeJ1bFaHMW2ZIjJTQomh8ntTZjIpSZc btvwoMmdXfi4mWNj
zswfPT13dGHu6NLS2crZNwyA9ZAtTbhiwzpBPihmsIf77qBhpnvwAJf3KK+6 /IyBGOeSwQEujWmY
eanEsyXD3ckuBjXKJ+Ngj4OrqncHtiXWu00T5DMb7l4cMzy4Qy2K/VOytKTE 3mk7aMM6c3/zA+MX
xgzLqwYXnrHhZHBBOrMD521YJ7Su6s76HtZBK617tnDOgv1rnJuMs3u4757t MqjPGQvXbchnti3J
Tp36SMJnnx1fWTm/fv3imI096iPlwfW1EraZ+6ztU19S5sDM/fELFqxb2Qcv TIWNEutr5/vAuRLW
walztoR8ZhKs7tFh5pkSxYQzNvaXX187M2Z99RnFyNPB02Ou5+MFxd210/vY ll/fXViltKfr7nrD
oPCudeb11c8K2paUZz7DPrhyep/a3coqy4SVZ1xfXSxY3+N6Pr7H+srimOs2 1kvsj5f3lC8vVjVM
fq4s7NE6WL/bTnb18p8LruwhHxTevdJ2twunSsgf5FpycM+Yma3hsSQwl0pc /rTKpRL7qxom1Klv
2LR/657CJ7Zz0oZ8ZiSc2MN990TDYHc+LyGfWV/it497Zuvyz48/wz7huA3r XfeSmJnpC9nsiT8C
AAAkSfYlQgghlKiyf/mvNQf/86v/KMhnj0r/EuZ5sXXzyrWP/234o79c++Ff pMrKj7566cN/zSNt
zQYAADjIfvjrVQe5t/3Dv18ZE4nJ5Q63+cpfPTrylS9nvpoq2+/9dR5jHmlr NgAAwIGPyeV/wpg7
M/frI++/+NrvNHn1zT/OzM9eevXvHr39lS8/+Wra5DHmkbbWDwAAHPiYXO5w fzg6u7IxcvwaNIRu
bN3Jn/vif760s/PFYSCPtLV+AADgwMfk8j/DLW+MvngOerK8McTkAABAiI/J vfja75482cl5qm01
trcf3797G5MDAAAhnib3eFePdHl47+7tW5sDh8llB9XqIhLG+zTtNq2nWMHk AAAmxNPkHj588PDh
fU0ePLh3Z2vzxmDNbXKtztGVEHsKweQAACbE0+Tu37/7lDtlyn+KqtyanHv3 bm/dGg7XlzA5AAAQ
4m1yY++5XfDU2Bo/NiGclnPv3tbWrcFw/VpXkysGi188FirPaRopVllnuseb 9qyM1L/zDiYHADAN
vE0ud51d4ynID+vyRyHyVXfv3rp1c2Nw/arw7+TKgxXjqdySj3Qalz+3fKsM JgcAMCGeJlcYT0F+
Upc/lsfHqow0XTfNvHPn5s3N9Y21FpNrGs9sjpKVDKlQ0xzr/u757qdYNyyD yQEATIinyRXGU5Cf
1+WP9cHxdTFi/ei4dfv25uaN6+urV0KYnGOf8pymme49m9bWn1UBkwMAmBBv k7uZc+fOZsFTK9qs
UB4srpsGy6rPvH37xuaNtfXVy11NrhiU2I97pOu4cMT6tXcwOQCAicl+8OtV B00mVxhPQX5Slz/W
B63X9YumHba2RjdGq9dXLgn/Tq5uIYW1VCaUB61bVTYpz2wdd8wpRsohlMHk AAAmxNPkbt/OHW5z
a+tGQX5Y1z+WBysj1o+OW7dujUbD1bVll8lJcJhKbGByAAATkv3gV6sOmk3u 2Z+uymQl1QcrI+WP
kpm3bg1Hw5W15c8xOQAAEOJpcoXxqHHz5sZwsLy6dHFCk+sRmBwAwIR4mtxT 4xlocnNzfbB+bWXp
PCYHAABCPE1uNFwbDldzRrushSZ/0Mauw124eukzTA4AAIR0M7n82I2BVntI g9Y8AACAm84ml48A
AAD0Ah+T+xIhhBDqgzxNrvXXoAAAAM8dTA4AAJIFkwMAgGTB5AAAIFmy7/9q 1QEmBwAA/QWTAwCA
ZAluctnfnC7TOr9Y1ToHAADAjYbJtc6Z1ioAAIAy2fdfW3WAyQEAQH95PiZX /+1lZWR84Z5TnwAA
AFBmaiY3N2fm5t4v2H9A7S/kKi7VNGKdb11VXJS/AABMGzM/v/9qA/SC6Zhc /gIsLBy1P8BmURXn
a7KxyrXbLwEgNIuLR+fm8DnoE1Mwufl5s7DwYeMDnAYmGWn6017TWgAIx+Li sfyVb50GEAlTMLm5
OVfH+xlYpxF8DkATfmkJPWIqJufqeKsDVX7rWB+x/lkts/26EocDUIbfWEKP CG5yAJAYvPLQIzA5
AOgGrzz0iOx7r606wOQAoAKvPPQITA4AusErDz0CkwOAbvDKQ4/A5ACgG7zy 0CMwOQDoBq889AhM
DgC6wSsPPSL73i9XHWByAFCBVx56BCYn4hsvH4GC1nT1gtYwDxWt6SpzGF55 SAZMTkR+Chj0VF0P
xGihpoW61vQwvPKQDJiciCQPxC+7y3Q/EKOFmo5lutf0MLzykAyYnIhUD8S1 zZ35q09OnHt0dPHB
+3MPc9499eCdT+++ffL+Wyfu5fx+5sGbn9z77bG7n6898jsQo4Waetf0MLzy kAyYnIhUD8T8NLw2
+OLC2hefXds9GXPmLu2cuvjkxPknM+e2c46d2flwcedPpx4fOX7H70CMFmrq XdPD8MpDMmByIlI9
EPOf9/PT8NzyzvzlJ/k5OD4Kj5/bOXZ659jiLvlp+N7c7oGY/1HA70CMFmrq XdPD8MpDMmTf/eWK
A0xujPVAzLKs8nGspmn1CVNZIhmxKq/j0cUH45/3Zy/u5OfgmJnT2/kh+MdT TwryA/FPn3r+1B8t
1NS7pofhlYdkwOREVA5E6xlkvS4+1idMZYlkpEl5Hd+fe7j7u6xLuz/s/+3f f3vmzPaY/BB8Z3Yn
Hzkyu51f5HgfiNFCTb1rehheeUiGGE0uK6l1smOT1jlyJD/1N41LTq6K6rck mzSNNCmv47unHuQ/
7+fkZ9+Y/Kf+/DTMz8FiJL/O8T4Qx1TKMd3q+EFNvWs69VceIByRmpz1uhPe C614H4jFtfxAtI7L
j79OB+LbJ+/nJ+CJc09yihPwg8X90/APp7bfmt3Z/dnf9+9vxmS+Jief2RVq 6l3Tqb/yAOGI3eTq
H4X4rWpCfiBWBt0HYiHrkvqIdRPrtPq2deV1fOvEveLXWeVzsDgNn5H/4H/S 86f+MZlvTeUzu0JN
vWs69VceIBw9M7niVa+M1CcUg/WPrV+gjvBArIxkttPKtJ1l5qC6btI0v668 jr+bub/7j+5KFKfh
u4vbOeMD8fezj3/v+8/NR7a0Z+Ka1q+zyUpZQE29azr1Vx4gHH0yuezgOVi/ 5ZhQ37YTkgNx8rPM
tO0p2aTpoXXldXz9k/sfLu4cO7PPR6d3f8f1zmc7b/x5u+D1k4/fnLnndyCO yWqyzhk5a1qZOSHU
1LumU3/lAcLRM5Mrqz65fm1d4kHrgZjVjp7KSH2ye6T+0bQtaRppUl7H33x0 /7253f84tcvpffID
8a3FXd6c3/nt7PZvTz5+Y8bz72/GZA01HR2skfWuY+YkUFPvmk79lQcIR/bd X6w4iM3k3POz2uHY
tKQrkgOxLGM7jMp3rSOVJdlBCTexjlg1PhDfmd39r8EfLOz+P6ox7y5u50fh H+a3c/If+fMD8TfH
H73+seevtsZkgppar1tnekNNvWs69VceIByxm5z7Ojt4AjomVK67Yj0Q+668 jv/9wd23Tj46cmp7
978G73Hkz7v/KuGNp7x+8nF+Gv7vzIP/O3bb70AcU0l+pXDl66aaTquUBdTU u6ZTf+UBwhGpyRVq
ulUZcaytf2z9AnVSPRAvLj986+Ott4/fPnL8TkH+8c2Ze2PemLmb/7yfn4bn l+/7HYgjW9olJatP
rsz0K2UBNfWu6dRfeYBwxGhyEZLqgdhVpvuBGC3UdCzTvaaH4ZWHZIjO5LIG tS4MSpIHop+6Hogj
ahq9utZ0uq88QFCiM7k4yU8BKGhNVy9oDfNQ0ZquMofhlYdkyL7zixUHmBwA VOCVhx6ByQFAN3jl
oUdgcgDQDV556BGYHAB0g1ceegQmBwDd4JWHHoHJAUA3eOWhR0zF5EzrYwAg GebnMTnoDVMwufl5
s7DwYeuTACABFheP5a986zSASJiCyY2e/vpiYeFo68MAoNcsLh7ld5XQL7Lv /HzFgdDkRk9/aZl3
PwCki+EXldA7pmZyAAAAsYHJAQBAsmByAACQLNm3f77iAJMDAID+gskBAECy YHIAAJAsmBwAACQL
JgcAAMniY3IAAAC9oLPJfYkQQgj1RJ1Nbji4CAAA0AswOQAASBZMDgAAkuU5 mNwnx97It2qdFjkJ
RJFACBAPtJMccjVUTEL27Z+tOMDkmkggigRCgHigneSQq6FiEjA5TxKIIoEQ IB5oJznkaqiYhOyf
f7biAJNrIoEoEggB4oF2kkOuhopJiNTksoNq3bNY1TpnWkii8MMRuDXA8aBH 7JIQKtt6PMVjCfQR
STvV8XvTKzu0zmlFvolkZuscv1x1JZLcNu0mT8KkUURrcq37TGuVH5IoPKiE UP7YFJ131JIQKo3l
8SyPJdBHJO1Ux9HwmsifK5nZOscvV12JJLcFfiY3eRSYnCeSKDzwCMFjyRhJ CJgcCJG0U53Jj7Cp
IH+uZGbrHL9cdSWS3BZMxeQ86JPJZXtqGhlfuOdMC0kUHjR9T0fsRdTWceva MZIQ6ps3faXyR+t4
ZcT93aB3SNqpTqX0jv4pz6lMaJrZtES+SWWJ+3FZSe6v5JerrlSeW3x/SQiV HZoC8dttjDAJ9Yc2
bZ41BRityTkSVARTH7HObxqZBEkUHli/pDB24cwCSQiVTSTlqFxIZlauoY9I 2qlOdlDFYOViWGue
yoijl9xt5t7EPSKfWVnll6uuZAdVDFYuhm0hOAJx7Faf5peE+m7Wx1m/ybOR aE2uPlIpWFMqK9eV
VdNCEoUHXStaGZHMLJCEUE5j/aP7VutXyg7K/U0gciTtVMdad0eH1OfXxytz mh5R37Zpc+uDHF+s
9Sv55aorTYEXF44QypMdgTh2qwzW1wqTUP9W1seVH1qd1iOT6zRST6s1Wd5I ovCgqaKV66YRycwC
SQj1jrGOl0cqF5KZkACSdqrjbnj5W+/oc/cmTa+PfKZ8pMAvV13RzK08dQXC JLijqI9YLvpocvKu
cpRnQiRReGDtIUlc8pkFkhAqy+sNVH9Q5UIys3INfUTSTnWsdZe0WWXE0UuT bFL+JsKZkq/kl6uu
aOZWvluBMAnWJ7orVb3oi8kN9/qsEl55xFqMrCT3QzshicIP6xd2jGS1Glcm 19eOkYRQWWX9ApVb
lQvr92naBPqLpJ3qWEvv7pCmdnL0kmOTrOH1qcws5tRnSkYq38cvV12pP7cy WP969e/fNLPTbtnB
1I2RJ6Gyj/Vx9Yv9OXGaXPzEH0WlperEHwL0CNpJDrkaKiYBk/MkziisP/I0 EWcI0FNoJznkaqiY
BEzOkwSiSCAEiAfaSQ65GiomIfunny47wOSaSCCKBEKAeKCd5JCroWISnoPJ AQAA6NDZ5JYuzwIA
APSCziZ3ZuFDAACAXtDZ5E5+8jYAAEAv6Gxyo41zE5LvmW9leq4XXnihbUrs SiAEFI9oJ7nIlVFM
AibnKbUKhVMCIaB4RDvJRa6MYhIwOU+pVSicEggBxSPaSS5yZRSTgMl5Sq1C 4ZRACCge0U5ykSuj
mARMzlNqFQqnBEJA8Yh2kotcGcUkYHKeUqtQOCUQAopHtJNc5MooJgGT85Ra hcIpgRBQPKKd5CJX
RjEJmJyn1CoUTgmEgOIR7SQXuTKKScDkPKVWoXBKIAQUj2gnuciVUUxC9q2f LjvA5JqkVqFwSiAE
FI9oJ7nIlVFMQvatV5cdYHJNUqtQOCUQAopHtJNc5MooJgGT85RahcIpgRBQ PKKd5CJXRjEJmJyn
1CoUTgmEgOIR7SQXuTKKScDkPKVWoXBKIAQUj2gnuciVUUwCJucptQqFUwIh oHhEO8lFroxiEjA5
T6lVKJwSCAHFI9pJLnJlFJOAyXlKrULhlEAIKB7RTnKRK6OYBEzOU2oVCqcE QkDxiHaSi1wZxSRg
cp5Sq1A4JRACike0k1zkyigmAZPzlFqFwimBEFA8op3kIldGMQmYnKfUKhRO CYSA4hHtJBe5MopJ
wOQ8pVahcEogBBSPaCe5yJVRTEL2zVeXHWByTVKrUDglEAKKR7STXOTKKCYB k/OUWoXCKYEQUDyi
neQiV0YxCZicp9QqFE4JhIDiEe0kF7kyiknA5DylVqFwSiAEFI9oJ7nIlVFM QvbNnyw7wOSapFah
cEogBBSPaCe5yJVRTAIm5ym1CoVTAiGgeEQ7yUWujGISMDlPqVUonBIIAcUj 2kkucmUUk4DJeUqt
QuGUQAgoHtFOcpEro5gETM5TahUKpwRCQPGIdpKLXBnFJGBynlKrUDglEAKK R7STXOTKKCYBk/OU
WoXCKYEQUDyineQiV0YxCZicp9QqFE4JhIDiEe0kF7kyiknA5DylVqFwSiAE FI9oJ7nIlVFMQvbC
T5YdYHJNUqtQOCUQAopHtJNc5MooJgGT85RahcIpgRBQPKKd5CJXRjEJmJyn 1CoUTgmEgOIR7SQX
uTKKScDkPKVWoXBKIAQUj2gnuciVUUwCJucptQqFUwIhoHhEO8lFroxiEjA5 T6lVKJwSCAHFI9pJ
LnJlFJOQvfDKsgNMrklqFQqnBEJA8Yh2kotcGcUkYHKeUqtQOCUQAopHtJNc 5MooJgGT85RahcIp
gRBQPKKd5CJXRjEJmJyn1CoUTgmEgOIR7SQXuTKKScDkPKVWoXBKIAQUj2gn uciVUUwCJucptQqF
UwIhoHhEO8lFroxiEjA5T6lVKJwSCAHFI9pJLnJlFJOQfeOVJQeYXJPUKhRO CYSA4hHtJBe5MopJ
wOQ8pVahcEogBBSPaCe5yJVRTAIm5ym1CoVTAiGgeEQ7yUWujGISMDlPqVUo nBIIAcUj2kkucmUU
k4DJeUqtQuGUQAgoHtFOcpEro5gETM5TahUKpwRCQPGIdpKLXBnFJGBynlKr UDglEAKKR7STXOTK
KCYBk/OUWoXCKYEQUDyineQiV0YxCdk3frzkAJNrklqFwimBEFA8op3kIldG MQmYnKfUKhROCYSA
4hHtJBe5MopJwOQ8pVahcEogBBSPaCe5yJVRTAIm5ym1CoVTAiGgeEQ7yUWu jGISMDlPqVUonBII
AcUj2kkucmUUk5B9/cdLDjC5JqlVKJwSCAHFI9pJLnJlFJOAyXlKrULhlEAI KB7RTnKRK6OYBEzO
U2oVCqcEQkDxiHaSi1wZxSRgcp5Sq1A4JRACike0k1zkyigmAZPzlFqFwimB EFA8op3kIldGMQmY
nKfUKhROCYSA4hHtJBe5MopJwOQ8pVahcEogBBSPaCe5yJVRTAIm5ym1CoVT AiGgeEQ7yUWujGIS
MDlPqVUonBIIAcUj2kkucmUUk4DJeUqtQuGUQAgoHtFOcpEro5iE7OsvLznA 5JqkVqFwSiAEFI9o
J7nIlVFMAibnKbUKhVMCIaB4RDvJRa6MYhIwOU+pVSicEggBxSPaSS5yZRST gMl5Sq1C4ZRACCge
0U5ykSujmITsay8vOcDkmqRWoXBKIAQUj2gnuciVUUwCJucptQqFUwIhoHhE O8lFroxiEjA5T6lV
KJwSCAHFI9pJLnJlFJOAyXlKrULhlEAIKB7RTnKRK6OYBEzOU2oVCqcEQkDx iHaSi1wZxSRgcp5S
q1A4JRACike0k1zkyigmAZPzlFqFwimBEFA8op3kIldGMQmYnKfUKhROCYSA 4hHtJBe5MopJwOQ8
pVahcEogBBSPaCe5yJVRTAIm5ym1CoVTAiGgeEQ7yUWujGISMDlPqVUonBII AcUj2kkucmUUk5B9
7aUlB5hck9QqFE4JhIDiEe0kF7kyiknA5DylVqFwSiAEFI9oJ7nIlVFMQvaP Ly05wOSapFahcEog
BBSPaCe5yJVRTAIm5ym1CoVTAiGgeEQ7yUWujGISMDlPqVUonBIIAcUj2kku cmUUk4DJeUqtQuGU
QAgoHtFOcpEro5gETM5TahUKpwRCQPGIdpKLXBnFJGBynlKrUDglEAKKR7ST XOTKKCYBk/OUWoXC
KYEQUDyineQiV0YxCZicp9QqFE4JhIDiEe0kF7kyikn4fzzHgT7MxR0gAAAA AElFTkSuQmCC
------=_NextPart_000_0016_01C8CC71.3D73A920--

Attached files
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Javier Morales
Mensajes: 8
Registrado: Mar Mar 04, 2008 10:07 am

Tablas grandes MySQL

Mensaje por Javier Morales »

Muy agradecido a todos por el consejo.
He modificado el ejemplo y he agregado un segundo DataSet en el formulario
de edicion que recupera del servidor el registro completo, lo pongo en
edicion, y si acepto los cambios, actualizo y refresco solamente el registro
actual del browse. Hasta aquí perfecto, pero cuando entro en modo añadir me
da los siguientes errores ("aparentemente aleatorios") cuando añado dos o
mas registros:
Agradeceria puieran orientarme ya que no se si hago lo correcto. Adjunto el
ejemplo.
Gracias
Javier Morales
Subsistema: MySQL
Código de error: -1
Estado: .T.
Descripción: Commands out of sync; you can't run this command now
Operación: TMYSQLRECORDS:QUERYALL
Argumentos: [ 1] = Tipo: C Valor: SHOW INDEX FROM personal
Fichero:
Código error SO: 0
Pila de llamadas:
TMYSQLRECORDS:QUERYALL (186)
TMYSQLRECORDS:OPEN (148)
TSQLQUERY:OPEN (307)
(b)XSQLQUERY:XDATASET (36)
TSQLQUERY:_LOPEN (0)
TFORM2:SQLQUERY2CREATE (56)
TSQLQUERY:ONCREATE (0)
TDATASET:CREATE (224)
TSQLQUERY:CREATE (39)
TFORM2:CREATEFORM (12)
TFORM2:NEW (182)
TFORM1:ANIADIR (73)
TBUTTON:ONCLICK (0)
TBUTTON:CLICK (99)
(b)XCONTROL:XCONTROL (145)
TBUTTON:COMMAND (0)
TSCROLLINGWINCONTROL:WMCOMMAND (255)
TFORM1:WMCOMMAND (889)
TMYSQLDATASOURCE:SQLGETROWS (0)
TMYSQLRECORDS:REFRESH (216)
TMYSQLRECORDS:FILTER (581)
TSQLQUERY:FILTER (769)
TSQLQUERY:RESTORESTATE (1278)
TSQLQUERY:REFRESH (850)
TFORM1:ANIADIR (80)
TBUTTON:ONCLICK (0)
TBUTTON:CLICK (99)
(b)XCONTROL:XCONTROL (145)
TBUTTON:COMMAND (0)
TSCROLLINGWINCONTROL:WMCOMMAND (255)
TFORM1:WMCOMMAND (889)
RUNFORM (0)
TAPPLICATION:RUN (209)
MAIN (15)
Subsistema: BASE
Código de error: 1132
Estado: .F.
Descripción: Bound error
Operación: array access
Argumentos: [ 1] = Tipo: A Valor: [ 2] = Tipo: N Valor: 4338
Fichero:
Código error SO: 0
Pila de llamadas:
TMYSQLRECORDS:FIELDGET (707)
TSQLQUERY:FIELDGET (909)
TDATAFIELD:VALUE (86)
TDBBRWCOLUMN:GETDATA (48)
TDBBRWCOLUMN:PAINTDATA (42)
TBROWSE:WMPAINT (156)
TDBBROWSE:WMPAINT (916)
TMYSQLDATASOURCE:SQLGETROWS (0)
TMYSQLRECORDS:REFRESH (216)
TSQLQUERY:REFRESH (849)
TFORM1:ANIADIR (80)
TBUTTON:ONCLICK (0)
TBUTTON:CLICK (99)
(b)XCONTROL:XCONTROL (145)
TBUTTON:COMMAND (0)
TSCROLLINGWINCONTROL:WMCOMMAND (255)
TFORM1:WMCOMMAND (889)
RUNFORM (0)
TAPPLICATION:RUN (209)
MAIN (15)
Javier Morales
Mensajes: 8
Registrado: Mar Mar 04, 2008 10:07 am

Tablas grandes MySQL

Mensaje por Javier Morales »

Perdón se me olvidó el ejemplo


Attached files ejemplo mysql.rar (23.7 KB)Â
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Tablas grandes MySQL

Mensaje por jfgimenez »

Javier,
no puedo acceder a la BD para probarlo. Por favor, envíamela; o envíame una
BD de prueba lo más pequeña posible.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Javier Morales
Mensajes: 8
Registrado: Mar Mar 04, 2008 10:07 am

Tablas grandes MySQL

Mensaje por Javier Morales »

Hola, adjunto te paso la tabla que uso.
Un Saludo
Javier Morales
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:48517348$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Javier,
>
> no puedo acceder a la BD para probarlo. Por favor, envíamela; o envíame
> una
> BD de prueba lo más pequeña posible.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
>
>


Attached files backup tabla personal.rar (17.3 KB)Â
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Tablas grandes MySQL

Mensaje por jfgimenez »

Javier,
lo he probado en local, tanto editar como añadir registros, y parece que
funciona correctamente. Por favor, indícanos los pasos a seguir para
reproducir el error.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Javier Morales
Mensajes: 8
Registrado: Mar Mar 04, 2008 10:07 am

Tablas grandes MySQL

Mensaje por Javier Morales »

Hola Jose F. adjunto paso ejemplo y te digo mas o menos donde creo que da el
error:
la condicion para que de el error es la siguiente:
Ha de estar en modo añadir y el registro actual del browse tiene que ser
mayor a 256. He observado que una vez añadido el registro la longitud de la
propiedad aData de TMySQLRecord es 257 con lo cual entiendo que si la
posicion del browse es mayor da un error al intentar acceder a un elemento
mayor de los que tiene la matriz.
No se si tendrá que ver pero en cualquier caso espero te sea de ayuda
Yo lo he probado en local y remoto y el comportamiento es el mismo.
Espero te deje conectar al servidor, de no ser así te rogaria me lo comentes
para intentar solucionarlo.
Gracias de antemano
Un Saludo
Javier Morales
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:485961ae$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Javier,
>
> lo he probado en local, tanto editar como añadir registros, y parece que
> funciona correctamente. Por favor, indícanos los pasos a seguir para
> reproducir el error.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
>
>


Attached files ejemplo.rar (4.6 KB)Â
Responder