![]() |
Datenbank: MSSQL • Version: 2012 • Zugriff über: FireDAC
FireDAC Fehler? #2
Hallöle...8-)
Callstack: Zitat:
Delphi-Quellcode:
...das sind Stellen an die man normalerweise nicht dran geht. :?
procedure TDMED.SetDateName(DataSet: TDataSet);
begin if DataSet.State = dsEdit then // !!!!! begin DataSet.FieldByName('ixRecName').AsString := USER_KN; // Zeile 7829 ist die hier DataSet.FieldByName('RecDate').AsDateTime := Now; end; if DataSet.State = dsInsert then begin DataSet.FieldByName('ixAddName').AsString := USER_KN; DataSet.FieldByName('AddDate').AsDateTime := Now; end; end; Hat das eine Verbindung mit ![]() |
AW: FireDAC Fehler? #2
Hallo,
gibt es den das Feld ixRecName im DataSet überhaupt? Das sieht doch wie ein Nil-Zugriff aus. Ist DMEdit Dein DataModul? |
AW: FireDAC Fehler? #2
Moin...8-)
Zitat:
Zitat:
Zitat:
PS: Die procedure wird hundere Male am Tag aufgerufen. :roll: |
AW: FireDAC Fehler? #2
Hallo,
nein, ich meinte
Delphi-Quellcode:
DataSet.FieldByName('ixRecName') ist nil, wenn es das Feld ixRecName nicht gibt.
DataSet.FieldByName('ixRecName').AsString
Dann erzeugt nil.AsString eine Zugriffsverletzung. Mach doch mal explizit eine Abfrage
Delphi-Quellcode:
if DataSet.FieldByName('ixRecName')=nil then
begin // ShowMessage irgendwas end; Zitat:
Zitat:
|
AW: FireDAC Fehler? #2
Zitat:
Zitat:
Zitat:
|
AW: FireDAC Fehler? #2
Zitat:
Delphi-Quellcode:
liefert
FindField
Delphi-Quellcode:
niemals ein
FieldByName
Delphi-Quellcode:
zurück, sondern erzeugt vorher eine
nil
Delphi-Quellcode:
Exception.
EDatabaseError
|
AW: FireDAC Fehler? #2
Hallo,
kommt der Fehler auch, wenn Du einen anderen Wert zuweist oder ein
Delphi-Quellcode:
machst?
DataSet.FieldByName('ixRecName').Clear
|
AW: FireDAC Fehler? #2
Danke...
Zitat:
Zitat:
|
AW: FireDAC Fehler? #2
Sicher, dass die Fehler-Zeile die richtige ist? Möglicherweise ist ja "DataSet" nil. Dann rummst es eine Zeile drüber...
|
AW: FireDAC Fehler? #2
Zitat:
Zitat:
|
AW: FireDAC Fehler? #2
Stimmt auch wieder :oops:
Hat die verwendete Query Komponente zur Designzeit eingerichtete persistente Felder? Ich hatte hier schon "interessante Effekte" wenn die aktuell abgefragten Werte (aus welchem Grund auch immer) nicht zu den persistenten Feldern passen. |
AW: FireDAC Fehler? #2
Zitat:
|
AW: FireDAC Fehler? #2
Hallo,
wenn es sporadisch kommt, mache das doch so, wie ich es vorgeschlagen habe (ShowMessage). Und dann testen, testen, testen. Du könntest auch noch FastMM4 und MadExcept mit ins Boot nehmen. |
AW: FireDAC Fehler? #2
Wenn bei mir so ein Fehler immer nur sporadisch auftritt, dann schreibe ich mir alle Werte, die in den betreffenden Zeile / procedure verwendet werden (möglicherweise auch NIL od. nicht NIL) stumpf in eine Logdatei. Solange bis der Fehler auftritt. In den meisten Fällen hat mir das schon sehr geholfen. Möglichweise steht ja in USER_KN was drin, was das DataSet bzw. FireDac so gar nicht beißen kann. USER_KN scheint ja eine globale Variable zu sein. Wenn die mal nicht initialisiert ist(aus welchen Gründen auch immer), können da schon mal tolle Sachen drin stehen ;-) Und dann such man den Fehler an dieser Stelle vergebens.
Showmessage ist zwar ganz schön, kann aber gerade bei sporadischen Fehler echt nerven ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz