PDA

Ver la Versión Completa : Range check error en ZeosLib


MaGNa
01-04-2008, 13:28:50
Buenas,

Hoy al iniciar D2006 me he encontrado con que no puedo abrir ninguna TZquery (en MySQL), ya que el IDE me devuelve "Range Check Error" y la información añadida al mismo es:

+ $19[14626211]{ZPlain100.bpl} ZPlainMySqlDriver.ZPlainMySqlDriver.TZMySQL5PlainDriver.GetFieldType + $19
+ $2A[1452D106]{ZDbc100.bpl } Zdbcmysqlutils.ConvertMySQLHandleToSQLType + $2A
+ $17A[1453314A]{ZDbc100.bpl } Zdbcmysqlresultset.TZMySQLResultSet.Open + $17A
+ $AC[14532F44]{ZDbc100.bpl } Zdbcmysqlresultset.TZMySQLResultSet + $AC
+ $41[14534805]{ZDbc100.bpl } Zdbcmysqlstatement.TZMySQLStatement.CreateResultSet + $41
+ $9B[14534973]{ZDbc100.bpl } Zdbcmysqlstatement.TZMySQLStatement.ExecuteQuery + $9B
+ $36[14514352]{ZDbc100.bpl } Zdbcstatement.TZEmulatedPreparedStatement.ExecuteQuery + $36
+ $2F[14514453]{ZDbc100.bpl } Zdbcstatement.TZEmulatedPreparedStatement.ExecuteQueryPrepared + $2F
+ $191[14679E91]{ZComponent100.bpl} Zabstractrodataset.TZAbstractRODataset.CreateResultSet + $191
+ $2E[14675F06]{ZComponent100.bpl} Zabstractdataset.TZAbstractDataset.CreateResultSet + $2E
+ $8C[14679F7C]{ZComponent100.bpl} Zabstractrodataset.TZAbstractRODataset.InternalOpen + $8C
+ $A[203AF4FD]{dbrtl100.bpl} DB.DB.TDataSet.DoInternalOpen (Line 9262, "DB.pas" + 1) + $A
+ $0[2002AE7E]{rtl100.bpl } TypInfo.TypInfo.SetOrdProp (Line 1316, "common\TypInfo.pas" + 27) + $0
+ $6[20EED30A]{designide100.bpl} DesignEditors.DesignEditors.TEnumProperty.SetValue (Line 1402, "DesignEditors.pas" + 5) + $6
+ $16[20EEB99C]{designide100.bpl} DesignEditors.DesignEditors.TPropertyEditor.Edit (Line 671, "DesignEditors.pas" + 11) + $16
+ $5[20C943EA]{coreide100.bpl} PropInsp.PropInsp.TPropertyInspector.PropListEditDblClick (Line 837, "PropInsp.pas" + 20) + $5
+ $A[20FCD681]{vclide100.bpl} IDEInspListBox.IDEInspListBox.TInspListBox.DoEditDblClick (Line 981, "ideinsplistbox.pas" + 2) + $A
+ $6[201406A7]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6
+ $4[20FCC857]{vclide100.bpl} IDEInspListBox.IDEInspListBox.TPropInspEdit.WndProc (Line 431, "ideinsplistbox.pas" + 7) + $4
+ $0[20040E4C]{rtl100.bpl } Classes.Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0
+ $6A[7E398731]{USER32.dll } GetDC + $6A
+ $14A[7E398811]{USER32.dll } GetDC + $14A
+ $122[7E3989C8]{USER32.dll } GetWindowLongW + $122
+ $A[7E398A0B]{USER32.dll } DispatchMessageW + $A

Lo curioso es que compilo, ejecuto y si funciona.

La versión instalada de Zeoslib es la 6.6.1, con la que llevo trabajando un año y pico sin ningún problema. He desinstalado esta versión e instalado la últma (6.6.2.rc) y el error es exactamente el mismo.

Este problema me ocasiona que no pueda abrir en el IDE directamente las tablas y no sea capaz de recuperar la información de la tabla.

¿Alguien sabe a que se debe? Mil gracias

PD: En los foros de Zeos hablan de un problema similar en Postgre, pero de Mysql no he encontrado nada.

duilioisola
01-04-2008, 16:40:01
Se me ocurre que la base a la que estás conectado tenga algún dato que no esté dentro de los valores esperados.

Prueba cambiar la base con la que te conectas por alguna otra anterior, a ver si al abrir el ide y conectar la "base vieja que si funcionaba", las tablas y el ide funcionan.

También se me ocurre la idea de desconectar los componentes.
Cerrar las tablas/querys, desconectar la base y grabar el proyecto.
Luego cierras todo y abres el IDE, a ver si funciona.
Si funciona, puedes ir conectando poco a poco las cosas y ver donde deja de funcionar.
- Primero conectas la base
- Luego abres una tabla, luego otra
- Luego un query
- etc. ...

Seguramente, el query o tabla que no puedas abrir tendrá un valor muy grande en uno de sus registros (un integer para un byte, un string de 100 para un string de 10, etc.)

Suerte y mantenenos al tanto...

MaGNa
03-04-2008, 11:13:07
Gracias por tu respuesta.

Lo primero decirte que he probado a restaurar una copia de la bd, y no ha habido forma, el problema persiste.

Como tengo otros proyectos con Zeos y MySQL he probado con ellos y pasa exactamente lo mismo (son diferentes bases de datos).

Ayer me dió por restaurar una copia de seguridad que tengo hecha de la carpeta BDS de Archivos de programa y funcionó correctamente todo, pero hoy he vuelto a iniciar D2006 y el error ha vuelto a reproducirse.

No entiendo que es lo que puede pasar porque ayer lo unico que hice fue abrir el proyecto, intentar abrir una tabla cualquiera y funcionó. Y hoy ya no!!!

¿Será cuestión de brujas? ¿Alguna otra sugerencia? Gracias

Lepe
03-04-2008, 12:06:22
En las opciones del proyecto, quita la casilla "Range check error"

Se supone que es por eso que salta la excepción. En delphi 7 está en compiler, en BDS ya no sé.

saludos y Suerte

radge
01-12-2010, 09:58:52
En las opciones del proyecto, quita la casilla "Range check error"

Se supone que es por eso que salta la excepción. En delphi 7 está en compiler, en BDS ya no sé.

saludos y Suerte

Estoy con el mismo problema con delphi 7 y las zeos 6.6.6 stable he mirado en las opciones del proyecto ==> Compiler y solo veo "range checking" , "i/o checking" y "overflow cheking"

En mi caso uso este código



mysqlConnection.Connect;
if mysqlConnection.Connected then showmessage('Conectado a la base de datos ' + mysqlConnection.Database); <== aquí me entra por lo tanto supongo que conecta


qryMysql.sql.clear;
qryMysql.SQL.Add('Select * from socios');
qryMysql.open; <== la excepción me salta aquí

if (qryMysql.RecordCount = 1) then begin
showmessage(weblogin);
end;

radge
28-02-2012, 10:55:32
Buenas , siento reabrir el post pero me acabo de encontrar con el mismo caso , en su dia lo solucióne pero no recuerdo como !!! que torpe !!!
Tengo un proyecto en delphi 7 con las zeos lib 6.6.6 y al conectar a la BD e intentar ejecutar la query obtengo "range check error" y no consigo hacer lo funcionar.

Gracias,