Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Excepcion en Ejecutable Delphi 10.1 berlin (https://www.clubdelphi.com/foros/showthread.php?t=91116)

victor Julio 14-11-2016 17:42:42

Excepcion en Ejecutable Delphi 10.1 berlin
 
Buenos dias, tengo un problema en el ejecutable con Delphi 10.1 berlin:
1. He conectado a mysql con Zeoslib: zconnection y zquery compila perfectamnete.
2. al colocar el datasource y dbgrid de delphi 10.1 berlin, compila pero aborta con una excepcion
"Exception EArgumentOutOfRange Exception in module Proyect1.exe at 0003F982"
Les agradeceria ayudarme con esto.
Saludos

AgustinOrtu 14-11-2016 18:30:35

Pon el codigo, la sentencia SQL, propiedades y version de los componentes y señala la linea que produce la excepcion

victor Julio 14-11-2016 18:47:49

Exeption
 
Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ZAbstractConnection, ZConnection,
  Data.DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, Vcl.Grids,
  Vcl.DBGrids, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error,
  FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool,
  FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.MySQL, FireDAC.Phys.MySQLDef,
  FireDAC.VCLUI.Wait, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf,
  FireDAC.DApt, FireDAC.Comp.Client, FireDAC.Comp.DataSet, ZSqlUpdate;

type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    ZConnection1: TZConnection;
    ZQuery1: TZQuery;
    ZUpdateSQL1: TZUpdateSQL;
    DataSource1: TDataSource;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.

--------------------------------------------------------------------------------------------------

ZeosLib 7.2.1 rc
windows 8.1 x64

Saludos

victor Julio 14-11-2016 18:50:49

Exeption
 
Estuve probando con FireDAC y da la misma exception
Al conectar el dbgrid si veo los datos de la tabla en ambos con ZeosLib y FireDAC al compilar ocurre la exception

Saludos

AgustinOrtu 14-11-2016 19:04:30

Me llama mucho la atencion que no funcione lo mas elemental de Delphi: Un Grid conectado a un DataSet. Hace la prueba mas basica: saca el Grid y el DataSource y ejecuta el Query solamente

Que propiedades pusiste en los componentes? Que linea produce el error en el depurador? Ejecuta el programa con Run (F9) y cuando ocurre la excepcion, dale al boton "Break"

Casimiro Notevi 14-11-2016 19:41:12

Cita:

Empezado por victor Julio (Mensaje 510745)
Saludos

Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

victor Julio 14-11-2016 20:16:33

AgustinOrtu
Como menciono en el punto uno de mi pregunta con los dos objetos ZeosLib: ZConnection y ZQuery si compila perfectamnete, al agregar Datasouce1 o Dbgrid1 ocurre la exeption, desintalare delphi y volvere a instalarlo a ver si en algo soluciono esto. Gracias

AgustinOrtu 14-11-2016 20:41:36

Había entendido que el error era en tiempo de ejecución, no en diseño

Podés probar con un reparar

De todas formas el IDE debería darte la traza hasta la excepción

victor Julio 15-11-2016 01:30:52

Reinstale Delphi 10 Berlin, todo sigue igual el mismo problema, cuando trabajaba con delphi 7 no habia este tipo de inconvenientes.

Esto arroja el break con FireDAC


:75004878 KERNELBASE.RaiseException + 0x48
:004406b6 TListHelper.CheckItemRange + $26
:0082ae21 TCustomGrid.ColWidthsChanged + $11
:00829fbc TCustomGrid.SetColWidths + $88
:00823cef TCustomGrid.ChangeScale + $5B
:00840318 TCustomDBGrid.ChangeScale + $184
:0054569b TControl.ScaleForPPI + $6F


Gracias

AgustinOrtu 15-11-2016 02:31:13

Evidentemente el problema es el DBGrid. Me animo a decir que es un problema de DPI. No recuerdo exactamente en que version hicieron al IDE DPI aware; a pesar de todo funciona bastante "mal", a juzgar por lo que he leido en los grupos en ingles y por la gran cantidad de reporte de bugs

AgustinOrtu 15-11-2016 18:20:17

No hay que darle mas vueltas al asunto: es un bug que aparece en Berlin 10.1 Update 1 y lo solucionaron en Berlin 10.1 Update 2

Link 1
Link 2

{ hay varios mas duplicados.. }

En el segundo link se puede ver un workaround, que consiste en parchear el metodo TCustomDBGrid.CanEditShow con el siguiente codigo

Código Delphi [-]
function TCustomDBGrid.CanEditShow: Boolean;
begin
  Result := (LayoutLock = 0) and inherited CanEditShow;
end;

victor Julio 16-11-2016 02:20:39

Exeption
 
Muchas gracias, descargare el update2

victor Julio 16-11-2016 05:52:41

AgustinOrtu
Muchas gracias, el update2 corrigio el problema del dbgrid, esta corriendo perfectamnete.
Saludos


La franja horaria es GMT +2. Ahora son las 08:25:12.

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