![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola, te doy algunas pistas a ver si por alla lo solucionas.
- usa refresh despues de las operaciones con la base de datos, o bien TQuery.Autorefresh a true (o equivalente) - TQuery.UpdateMode a upWhereChanged (o equivalente con tus componentes) o bien cambia a ADO: con los TQuery usuales me empezaron a salir estos errores por no usar refresh ni updates. Cambie a ADO, y desaparecieron todos . Saludos. |
|
#2
|
||||
|
||||
|
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment |
|
#3
|
|||
|
|||
|
gracias, ahora empiezo a probar lo que me comentas, aunque tardaré casi un dia en saber si funciona.
Cita:
Mas informacion sobre como trabajo: ** Para datos que sean actualizables utilizo TDataSet, en muy contadas ocasiones uso TUpdateSQL para actualizar grids con Tquerys ** ForcedRefresh esta a FALSE en Datasets y Querys. Es el valor por defecto, y asi me funcionaba sin problemas. Cita:
¿Alguno más piensa que debo sustituir los MDO??? Es más facil que me equivoque yo al programar, supongo que no es un bug de Firebird, pero, ¿no podria ser un error del archivo de la base de datos?? ¿o un problema de motor mal instalado?? ¿o un conflicto con algo instalado en su windows?? |
|
#4
|
|||
|
|||
|
Cita:
Resulta que despues de enviar el post, el navegador no me devolvio la pagina del foro, sino que me envió para descargar un archivo .php de vuestro servidor ![]() ![]() ![]() Pensaba que no se habia enviado nada, asi que di para atras y volvi a enviar, esta vez si que me mostró lo esperado. Cuando me di cuenta de que habia 2 post, intenté borrar uno, pero no tengo permisos. Te pido disculpas si te ha molestado. Si tienes alguna sugerencia más que añadir..... a ser posible sobre mi problema..... gracias |
|
#5
|
|||
|
|||
|
Cita:
![]() ![]() Debe haber una manera correcta de solucionarlos. Yo la desconozco aunque ya te digo que creo q va por el tema de update. Saludos. |
|
#6
|
|||
|
|||
|
gracias coso
Cita:
Cita:
Hay que cambiar muchas cosas para pasar de MDO a ADO?? encontraste problemas durante el cambio?? las transacciones se gestionan igual?? ¿por que surgen solo en uno de los clientes?? ¿¿ por que a mi no me sale el problema al restaurar la copia de seguridad?? Estoy totalmente perdido ![]() ![]() |
|
#7
|
||||
|
||||
¡Hola!A raíz de este mensaje me entero que existe, al menos en Firebird e InterBase, una sentencia SQL llamada Declare Cursor (me pregunto si tendrá que ver con las recientemente mencionadas tablas temporales). Según se desprende del mensaje de error, es como si se estuviera ejecutando dos veces un mismo Declare Cursor sin un Close entre uno y otro:
Algo que puedes hacer es buscar ese tipo de sentencias SQL en los fuentes de MDO, y seguirles la pista con el depurador. A ver cuándo se lanza el Declare y cuando se lanza el Close. No conozco los MDO, pero, considerando que son relativamente populares, quizá hagas algo mal desde tu programa, omitiéndose alguno de esos cierres de cursor. Claro, esto mismo puede estar ocurriendo dentro de los disparadores y procedimientos almacenados, si es que dentro de ellos hay sentencias para creación, manejo y cierre de cursores. En conclusión, es probable que se esté omitiendo uno de esos Close por algún descuido en el código de tu programa o en el código de los disparadores y SPs. La razón por la que esto ocurre tan azarosamente puede residir en alguna condición que, por no cumplirse, impida entrar al bloque de código o llamar a la rutina donde se ejecuta el cierre, o por algún error (excepción) previo no bien manejado que interrumpa la ejecución normal del programa. Espero logres solucionarlo, apóyate en el depurador de oro de Delphi y échale un vistazo a las rutinas internas de la base de datos. No dejes de comentarnos. Al González. ![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. Última edición por Al González fecha: 12-12-2008 a las 18:55:18. |
|
#8
|
|||
|
|||
|
Hola AI, gracias por tu aporte.
Cita:
Es totalmente aleatorio, pero si repaso, veo que las funciones que más se usan son las que más errores provocan. Pongo el trazado por si veis mas que yo ![]() ![]() El numero (1463 TMDOTransaction.Call) indica la linea donde se produce el error. Ahora mismo no tengo a mano el contenido de esa linea, pero lo pondré mañana.
Tengo el codigo fuente de los MDO, con la linea a la que hace referencia. Si puede servir para algo lo posteo. El problema al tratar de depurar, es que esos mismos procedimientos funcionan bien en otros equipos, incluso en el equipo ahora afectado llevaba 6 meses funcionando sin ningun problema. Incluso con la base de datos que da este error, estos procedimientos funcionan bien la mayoria de las veces, pero en ocasiones (cada hora de trabajo o más) empieza a dar fallos. Algunos de los forms del informe nunca se destruyen, otros se crean en ejecucion. Algunas de las querys que han dado error funcionan sin problemas desde hace años. No es que no pueda haber un error en mi codigo, solo que es muy raro, y parece haberse propagado por todas partes. Los MDO llevo 2 años usandolos sin problemas hasta ahora. Última edición por Sick boy fecha: 12-12-2008 a las 22:09:56. |
|
#9
|
||||
|
||||
|
Cita:
Respecto al tema, poco más que nuestros compañeros puedo decir. En Delphi casi siempre he utilizado el método clásico del TDataTable. Sí utilicé ADO una temporada y lo encontré algo confuso, no sabría decirte. Yo creo que deberías probarlo para que puedas comprobar por ti mismo cuál te es más cómodo y cuál es más adecuado a tu proyecto.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Mensaje de error extraño | Sick boy | Firebird e Interbase | 0 | 12-12-2008 11:22:26 |
| Error Extraño | SysAdminGCS | Varios | 1 | 18-08-2007 16:30:49 |
| Error Extraño | Esau | SQL | 4 | 17-06-2005 22:44:16 |
| error extraño | gilberto_1126 | Varios | 2 | 05-09-2004 01:01:01 |
| Error Extraño | Esau | OOP | 5 | 19-11-2003 18:01:32 |
|