PDA

Ver la Versión Completa : Problemas con el depurador


jplj
28-04-2005, 13:25:36
Hace tres días me viene ocurriendo lo siguiente con el modulo de datos de un proyecto realizado con delphi 7 (en el módulo tengo dos conexiones ADO y varias tablas y consultas ADO).
En un procedimento -que no he tocado- tengo un case que me permite elegir una sentencia SQL para posteriormente asignarsela una consulta.

case Clase of
INSERT:
begin
case Tabla of
Tabla_EE: SQL:= 'SELECT Puntos.Id, Puntos.N, Puntos.X, Puntos.[Y], ...';

...

result := SQL;
end



El trabajo en el módulo lo estoy realizando en otro punto.

Bien, cuando mejor le parece, al ejecutar-depurar la aplicación, surge un error ya que en el valor que toma la variable SQL se sustituyen determinadas letras por otras como han sido la Ì o ?, quedando algo parecido a :


'SELECT Puntos.Id, Punt?s.N, Puntos.X, Puntos.[Y], ...';

o

'SELECT Puntos.Id, Puntos.N, PuÌtos.X, Puntos.[Y], ...';


Siempre es en la misma sentencia SQL (en el mismo punto), y hay muchas otras en el case.

También simultánemanete me ocurre que los punto de interrupción que pongo, en la parte en la que estoy trabajando, no producen la interrupción cuando se pasa por ellos. En concreto tengo uno puesto en una líneas del evento BeforePost de una consulta (que no tiene nada que ver con la precedente).

La solución que le dí los dos primeros días fue recuperar copias de seguridad que tenía del día anterior y rehacer el trabajo. Pero al seguir trabajando el problema se ha repetido.

Esta mañana me surgió un mensaje de error referido a BORdbk70.dll, con lo que me hizo pensar que el problema estaba en el depurador de delphi. Y he podido comprobar que el programa funciona correctamente al ejecutarlo, mientras que si lo intento desde el IDE de delphi me surge el error.

Agradecería infinito cualquier sugerencia.

jplj
04-05-2005, 11:54:19
Creo haber encontrado el problema. Al menos ahora todo funiona bien.

Dado que el error sólo surgía al depurar el programa, decidí continuar en tanto intentaba encontrar una solución.

En un momento dado al compilar tras unas modificaciones, presentó un error que decía que tenía un número excesivo de constantes, y que debía dividir el procedimiento.

En concreto se referería a un procedimiento de unas setecientas lineas. Bien, tras dividirlo en varios, no sólo compiló bien, sino que el problema con el depurador ha desaparecido.

Creo que cuando un procedimento se aproxima al límite de "tamaño" y antes de que el compilador avise, el depurador presenta los problemas que describo en mi mensaje incial.