Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error en Consulta ADO (https://www.clubdelphi.com/foros/showthread.php?t=6051)

Luis Castillo 16-12-2003 18:02:50

Error en Consulta ADO
 
Estimados Colegas, tengo un pequeno problema en la aplicacion que estoy desarrollando.

La base de datos con la que trabajo es de microsoft SQL server 2000. y como es obvio interactuo con Delphi 5.

Hay una consulta algo asi

Select *
From carteraTarjetas
Where CodVendedor=:pcCodVend And CodPUnto=:pcCodpunto

ESta me trae la cartera del vendedor en cada tienda.

Estaba funcionando de maravilla hasta que un dia derrepente comenzo a fallar:
la consulta se deja abrir, pero cuando la intento cerrar sale un mensaje de error:

"Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record"

He probado borrando al tanteo y utilizando el pensamiento inductivo y deductivo y todo lo demas pero no entiendo.

Favor informarme sobre cualquier idea o aclaracion.

Muchas Gracias

guillotmarc 16-12-2003 18:23:02

Hola.

Has actualizado ADO en el Ordenador a la versión 2.6. Tienes que instalar un parche específico en Borland para actualizar los componentes ADO Express para que soporten ADO 2.6.

NOTA : ADO se actualiza solo al instalar otros productos (Internet Explorer, Office, SQL Server, ...) por lo que se puede haber actualizado sin que te des cuenta.

http://info.borland.com/devsupport/delphi/mdac26.html

Saludos.

Al González 16-12-2003 18:39:55

¡Hola a Todos!

Luis:

No se si decirte "¡Bienvenido a la cara oculta de ADO!", o "Me uno en tu pesar". Lo cierto es que ADO ha resultado ser un mecanismo de bases de datos muy delicado, sobre todo en Delphi 5. Te aconsejaría cambiar a otro tipo de componentes como DBExpress.

Trabajando con ADO, la solución más práctica que encontré al problema que mencionas, fue cambiar a Delphi 6 y establecer un manejador de excepciones global en la aplicación. Esto para interceptar esa terrible excepción OLE y evitar que se muestre el mensaje de error al usuario.

ADO eleva muchas excepciones exageradas, es decir, alarmas que realmente no tienen gran importancia, como por ejemplo que otro usuario elimine uno de los registros que se ven actualmente en una rejilla.

Si el registro ya no existe, OK, no hay problema, otro usuario lo eliminó, es algo normal. Pero para Microsoft parece que esto es algo grave, aún cuando el usuario actual no tenga intención alguna de tocar ese registro.

Espero esto sea de utilidad. Seguimos en contacto.

Al González :).

Luis Castillo 18-12-2003 15:24:00

Bueno mis amigos, les agradezco las respuestas. Aunque me preocupa bastante saber que casi no puedo hacer nada ya que la aplicacion estaba adelantada. LO QUE DESESPERA ES QUE ESTE ERROR NO SALIA Y DE REPENTE, DOS SEMANAS DESPUES DE ESTAR UTILIZANDO LA APLICACION NO PUEDO CERRAR UN DATASET VACIO PORQUE ME SALE EL ERROR.

Pero ahora lo que necesito es salir del problema....donde consigo esos componentes DBExpress, tengo delphi 5 Enterprise y no existe esa paleta. Agradeceria me den un poquito de ayuda con estos nuevos componentes porque estoy en cero -0-

De antemano muchisimas gracias.....de verdad que me ayudan mucho

Luis Castillo 18-12-2003 15:40:01

como se que version de ADO esta en mi delphi 5

__hector 18-12-2003 15:52:02

Estee... creo que te estas complicando un poco. Si ya tienes el programa avanzado, no seria bueno que empezases a pasar todo el codigo para que sea compatible con otros componentes, como el DBExpress. Ademas de que no vienen el delphi 5, sino a partir de su version 6.

El problema que presenta tu aplicacion esta por demás documentado, y es solucionable en escasos 3 pasos:

1 - Descarga la actualizacion para Delphi 5 (Update Pack).
http://info.borland.com/devsupport/d...ads/index.html

2- Aplica el parche para ADO.
ftp://ftpc.inprise.com/pub/delphi/de...adoupdate2.exe

3- Actualiza el MDAC en la maquina.
http://msdn.microsoft.com/isapi/goms...DisplayLang=en

Luis Castillo 18-12-2003 20:55:09

Amigo hector creo que tu solucion es la mas adecuada, pero el punto 1 no lo he podido encontrar. Al instalar la actualizacion de ADO me dice que debe estar instalado el Pack #1 que no lo tengo. Y el vinculo que me das me lleva a la pagina donde esta la version 2 del Pack Adoexpress.

Probe descargando el vinculo que dice ADOExpress Update pero en la instalacion me dice que es del Delphi Profesional, sin embargo lo instalo y al instalar el pack #2, me sigue pidiendo la previa instalacion del Pack #1.

Donde puedo conseguir esta pack.

Gracias

guillotmarc 18-12-2003 21:30:20

http://info.borland.com/devsupport/d...ads/index.html

Luis Castillo 19-12-2003 14:26:14

Estimados amigos ya segui sus instrucciones y he solucionado el problema. Agradezco grandemente su colaboracion.


Saludos a todos.

PD: no entiendo muy bien la funcion del tercer archivo descargado: MD?_TYPE

__hector 19-12-2003 14:32:18

Cita:

PD: no entiendo muy bien la funcion del tercer archivo descargado: MD?_TYPE
Providers OLE DB para diversas fuentes de datos (incluyendo actualizaciones para SQL Server y MSAccess).


La franja horaria es GMT +2. Ahora son las 18:12:51.

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