Me sale el mensaje: Demasiadas tareas de cliente

Mi problema es que estoy programando en Visual Basic 6 y utilizo ADO para hacer las conexiones a los controles y las Datagrid.
Cuando llevo cierta cantidad de controles ADO colocados en toda la aplicación me aparece el mensaje
[Microsoft][Controlador ODBC Microsoft Access] Demasiadas tareas de cliente.
Buscando en el Help de Visual vi que no hay límite de ADO a utilizar en ua aplicación. Para conectarme utilizo un DSN que cree con el primer ADO que coloque desde sus propiedades...
¿A ver si me puedes ayudar?

1 respuesta

Respuesta
1
Tu problema es que abres el contro de ado y lo dejas abierto y vinculado al datagrid y eso ocasiona que te quedes sin memoria. Para solucionar tu problema deberías crear un recordset con ado establecer los datos en el datagrid y después cerrar la conexión del recordset.
Ejemplo para abrir recordset con ado
Dim mYrecordset As New ADODB.Recordset
dim sSql as string
ssql="Select * form tabla"
Set mYrecordset = Conexionado.Execute(sSql)
set datagrid.source= myrecordset
Myrecordset. Close
No se como esta tu nivel de visual pero si no es suficiente con esto para encarrilar tu problema dímelo y concretamos más un Saludos
Tu respuesta es muy acertada, en un principio creí que se podían utilizar tantos ADO como llamadas a la BD necesitas, tal cual lo dice la ayuda de VB... Este es mi primer sistema serio en Visual por lo tanto me faltan algunos conceptos como por ejemplo que tipo de conexión me conviene utilizar.
Lo que me enviaste lo probé con una conexión creada desde el entorno de datos y funciona OK. Me queda la duda si cuando colocas "Conexionado.Execute, te refieres a éso, no es así ???
Y para aclarar un poco el tema, ¿Hice mal en colocar tantos ADODC en la aplicación?, debería haber Utilizado solo uno e ir cambiando su Recordset... Aunqueesto no me permite tener una grilla refrescada apenas cambie el contenido de la DB si no em equivoco.
Me has pillado liadillo y con el fin de semana en medio ;) bueno aclararte un poco el tema en principio puedes usar varios recordset no tienes por que centrarte solo en uno pero si es conveniente cerrarlo inmediatamente después de usarlo, en cuanto a la rejilla la palabra "modificacion" es la clave solo tienes que lanzar de nuevo el recordset y actualizar la rejilla y vuelves a cerrar.
Bien en cuanto ha Conexionado. Execute es una manera de ejecutar, pero hay otras como
mYrecordset.open = ssql, Conexionado
Salu2 ¿tu diras?.
El mensaje de demadiadas tareaas para el cliente me sale en tiempo de diseño, cuando después de pegar el ADO lo quiero vincular con algún control... El tema es que he ignorado el mensaje y si bien los controles en sus propiedades no me muestran las listas de campos, se los he colocado directamente... Y funciona sin problema aparente.. Tengo miedo cuando este en producción que se colapse, pero es muy improbable que estén todos los ADO abiertos a la vez..
Me extraña mucho que me de este mensaje cuando estoy diseñando y no en la ejecución...
O debo tener algún concepto muy mal o no guarda demasiada relación, ¿no creo que un ADO se habrá hasta que se le llame y menos cuando se está diseñando?
Efectivamente este dato es importante y no tiene mucho sentido al no ser que tengas varios objetos ado vinculados en la misma pantalla o excesivos formularios con estos abiertos en el diseñador, si esto no es así yo probaría a reinstalar visual basic. Pero en cualquier caso yo no me preocuparía demasiado por que tengas problemas en tiempo de ejecución si como dices te aceptalas propiedades por código. Definitivamente yo achacaría tu problema a que algún otro sw haya modificado archivos de visual basic, prueba a reinstalar e instalar el servipack 5 de visal basic que puedes encontrar en la web de microsoft. Sau2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas