Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Range check error en ZeosLib (https://www.clubdelphi.com/foros/showthread.php?t=54845)

MaGNa 01-04-2008 13:28:50

Range check error en ZeosLib
 
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:

Código:

+ $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

Cita:

Empezado por Lepe (Mensaje 277249)
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,


La franja horaria es GMT +2. Ahora son las 02:41:42.

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