AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Ungültiges Quell-Array bei Zuweisung string zu Query.FieldByName
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von haentschman · begonnen am 5. Mai 2022 · letzter Beitrag vom 16. Jun 2022
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#1

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

  Alt 5. Mai 2022, 09:43
Hallöle...

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...

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
Miniaturansicht angehängter Grafiken
error.png   code.png  

Geändert von haentschman ( 5. Mai 2022 um 09:46 Uhr)
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
563 Beiträge
 
Delphi XE6 Enterprise
 
#2

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

  Alt 5. Mai 2022, 10:15
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".
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#3

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

  Alt 5. Mai 2022, 10:20
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 FIOBuffer = nil oder (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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 5. Mai 2022, 10:32
Danke...
Zitat:
Aber vielleicht enthält ja "UserNameShort" irgendwelchen Murks?
...in diesem Falle wäre "UserNameShort" = 'BeaDör'
Zitat:
Was auch immer das auslösen mag bekommst du nur raus, wenn du die Anwendung auf dem betroffenen System debuggst
...ne oder.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#5

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

  Alt 5. Mai 2022, 10:56
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#6

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

  Alt 5. Mai 2022, 11:09
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?
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#7

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

  Alt 5. Mai 2022, 11:12
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
LG aus dem hohen Norden, Edmund
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#8

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

  Alt 5. Mai 2022, 11:34
Zitat:
Wieviele weitere UserNameShort mit Umlauten gibt es?
...u.a. ich selbst AndHän
Zitat:
und das könnte auf einem Rechner auch von einem defekten Speicherriegel herkommen
...die Hardware ist 2 Monate alt. 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)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#9

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

  Alt 5. Mai 2022, 11:43
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#10

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

  Alt 5. Mai 2022, 11:59
Zitat:
Hol dir die Kiste in dein Büro
...nächste Woche bin ich wieder vor Ort.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr.
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