Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName (https://www.delphipraxis.net/210510-ungueltiges-quell-array-bei-zuweisung-string-zu-query-fieldbyname.html)

haentschman 5. Mai 2022 09:43


Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallöle... 8-)

In der Entwicklung kann ich es nicht nachvollziehen...:?

Ein Arbeitsplatz (immer der Gleiche) schmeißt folgenden Fehler:

Zitat:

Ungültiges Quell-Array
siehe Bild 1

Die Query auf dem Datamodule hat ein Event "OnNewRecord"
siehe Bild 2

...Bei der Zuweisung des aktuellen Users...:evil:

PS: Die Tante sagt zu dem Fehler nichts...:?
PS: Der CurrentUser ist nicht nil!
Delphi-Quellcode:
  TUser = class(TBaseObject)
  strict private
  {$REGION 'Fields'}
    FRole_1: TUserRole;
    FRole_2: TUserRole;
    FRole_3: TUserRole;
    FIsDefault: Boolean;
    FUserGroup: TUserGroup;
    FUserName: string;
    FUserPassword: string;
    FChangePassword: Boolean;
    FUserShortName: string;
    FUserShortFull: string;
    FOnChangeUser: TOnChangeUserEvent;
    FAccessCount: Integer;
    FActive: Boolean;
    FAccessLast: TDateTime;
    FOffsetDayPreviousNumber: Integer;
  {$ENDREGION}
    procedure SetUserName(const Value: string);
  public
    constructor Create;
    destructor Destroy; override;
    property OnChangeUser: TOnChangeUserEvent read FOnChangeUser write FOnChangeUser;
    property UserGroup: TUserGroup read FUserGroup write FUserGroup;
    property UserName: string read FUserName write SetUserName;
    property UserNameShort: string read FUserShortName write FUserShortName;
    property UserNameFull: string read FUserShortFull write FUserShortFull;
    property UserPassword: string read FUserPassword write FUserPassword;
    property ChangePassword: Boolean read FChangePassword write FChangePassword;
    property Role_1: TUserRole read FRole_1 write FRole_1;
    property Role_2: TUserRole read FRole_2 write FRole_2;
    property Role_3: TMUserRole read FRole_3 write FRole_3;
    property IsDefault: Boolean read FIsDefault write FIsDefault;
    property Active: Boolean read FActive write FActive;
    property AccessLast: TDateTime read FAccessLast write FAccessLast;
    property AccessCount: Integer read FAccessCount write FAccessCount;
    property OffsetDayPreviousNumber: Integer read FOffsetDayPreviousNumber write FOffsetDayPreviousNumber;
    function IsRightAllowed(RightID: Integer): Boolean;
  end;
Wo muß ich suchen?

Danke :wink:

Frickler 5. Mai 2022 10:15

AW: Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Wäre die Fehlermeldung nicht eh anders, wenn "CurrentUser" nil wäre?

Aber vielleicht enthält ja "UserNameShort" irgendwelchen Murks? Im VCL Quelltext findet sich zu der Fehlermeldung der Kommentar "Used by TEncoding".

Uwe Raabe 5. Mai 2022 10:20

AW: Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Der Fehler entsteht in TEncoding.GetBytes:
Delphi-Quellcode:
  if (Bytes = nil) and (CharCount <> 0) then
    raise EEncodingError.CreateRes(@SInvalidSourceArray);
Eine der beiden Bedingungen trifft offenbar nicht zu.

Die aufrufende Zeile ist dabei folgende:
Delphi-Quellcode:
  Len := (Length(Value) + 1) * SizeOf(WideChar);
  if DataSize < Len then
    Len := DataSize;
  TEncoding.Unicode.GetBytes(Value, Low(Value), (Len - 1) div SizeOf(WideChar), FIOBuffer, 0);
Also ist entweder
Delphi-Quellcode:
FIOBuffer = nil
oder
Delphi-Quellcode:
(Len - 1) div SizeOf(WideChar)
ist 0. Was auch immer das auslösen mag bekommst du nur raus, wenn du die Anwendung auf dem betroffenen System debuggst.

haentschman 5. Mai 2022 10:32

AW: Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Danke...:wink:
Zitat:

Aber vielleicht enthält ja "UserNameShort" irgendwelchen Murks?
...in diesem Falle wäre "UserNameShort" = 'BeaDör':zwinker:
Zitat:

Was auch immer das auslösen mag bekommst du nur raus, wenn du die Anwendung auf dem betroffenen System debuggst
:kotz: ...ne oder.

Uwe Raabe 5. Mai 2022 10:56

AW: Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Dazu möchte ich noch sagen, dass ich einen systemischen Fehler für sehr unwahrscheinlich halte. Dein Code ist vollkommen korrekt und löst diesen Fehler vermutlich gar nicht aus. Ich verorte das Problem entweder an einer vollkommen anderen Stelle, die unerlaubt fremden Speicher manipuliert, oder eine externe Quelle (z.B. einen defekten Treiber oder eine fehlerhafte DLL) als Ursache des Problems. MadExcept zeigt doch die geladenen Module und deren Versionen an. Vielleicht wirst du da bei einem Vergleich mit einem funktionierenden System fündig.

Delphi.Narium 5. Mai 2022 11:09

AW: Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Wieviele weitere UserNameShort mit Umlauten gibt es?

Hast Du da zufällig bei genau einem UserNameShort mit 'nem Umlaut an genau einem Rechner ein (wieauchimmerwodurchauchimmerverursachtes) Problem oder zufällig nur einen UserNameShort, so dass das Problem andernorts einfach nur deshalb (bisher) nicht aufgetreten ist?

Poelser 5. Mai 2022 11:12

AW: Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1505452)
Ich verorte das Problem entweder an einer vollkommen anderen Stelle, die unerlaubt fremden Speicher manipuliert

und das könnte auf einem Rechner auch von einem defekten Speicherriegel herkommen, alles schon gehabt:-(

haentschman 5. Mai 2022 11:34

AW: Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Zitat:

Wieviele weitere UserNameShort mit Umlauten gibt es?
...u.a. ich selbst AndHän :zwinker:
Zitat:

und das könnte auf einem Rechner auch von einem defekten Speicherriegel herkommen
...die Hardware ist 2 Monate alt. :gruebel: Ausschließen kann man es nicht.
Zitat:

Ich verorte das Problem entweder an einer vollkommen anderen Stelle, die unerlaubt fremden Speicher manipuliert
...das dumme ist, daß der Fehler exakt der gleichen Stelle (Quelltext) auftritt. Auch nach dem Hochfahren ist es die gleiche Stelle im Quelltext.

Auf die Frage, ob das immer auftritt:
"Immer wenn ich Fenster 1 öffne, zum Fenster 2 wechsle, was eintrage, zum Fenster 1 zurückwechsle und einen neuen Vorgang erzeuge ---> Puff)"
...kann ich mir nicht vorstellen. Das ist eine Funktion die 100 Mal am Tag benutzt wird. Da wäre schon mehr Mecker... Deshalb stufe ich das als "sporadisch" ein...einmal am Tag (gefühlt) :?

Uwe Raabe 5. Mai 2022 11:43

AW: Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Zitat:

Zitat von haentschman (Beitrag 1505457)
Auf die Frage, ob das immer auftritt:
"Immer wenn ich Fenster 1 öffne, zum Fenster 2 wechsle, was eintrage, zum Fenster 1 zurückwechsle und einen neuen Vorgang erzeuge ---> Puff)"

Dann bist du immerhin in der glücklichen Situation, dass du reproduzierbare Steps hast. Hol dir die Kiste in dein Büro und versuch es mit Remote-Debugging. Alternativ Delphi installieren und direkt debuggen.

haentschman 5. Mai 2022 11:59

AW: Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
 
Zitat:

Hol dir die Kiste in dein Büro
...nächste Woche bin ich wieder vor Ort. :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz