PDA

Ver la Versión Completa : Excepcion en Ejecutable Delphi 10.1 berlin


victor Julio
14-11-2016, 17:42:42
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
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
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
Saludos
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), gracias por tu colaboración :)

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

http://www.clubdelphi.com/images/UtilizarTAGs.png

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 (https://msdn.microsoft.com/en-us/library/windows/desktop/dn469266(v=vs.85).aspx). 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 (https://quality.embarcadero.com/browse/RSP-16085)
Link 2 (https://quality.embarcadero.com/browse/RSP-15872)

{ 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


function TCustomDBGrid.CanEditShow: Boolean;
begin
Result := (LayoutLock = 0) and inherited CanEditShow;
end;

victor Julio
16-11-2016, 02:20:39
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