Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ADO Oracle -Fehlermeldungen (https://www.delphipraxis.net/170632-ado-oracle-fehlermeldungen.html)

p80286 26. Sep 2012 13:09

Datenbank: Oracle • Version: egal • Zugriff über: ADO

ADO Oracle -Fehlermeldungen
 
hallo zusammen.

manchmal taucht folgende Fehlermeldung auf, ohne daß man sich einer Schuld bewußt ist:
Zitat:

Fehler bei einem aus mehreren Schritten bestehenden Vorgang. Prüfen Sie die einzelnen Statuswerte.
beim Wechsel der
Delphi-Quellcode:
.Cursorlocation
von
Delphi-Quellcode:
clUseClient
auf
Delphi-Quellcode:
clUseServer
wurde daraus:
Zitat:

Der Accessor ist kein Parameteraccessor
Nach einigem Hin und Her bin ich dann mit Hilfe der Fehlerausgabe auf die Fehlerursache gestoßen, Ein nicht ganz sauberes Datumsfeld to_char(meinfeld) ergibt 0004-11-11 00:00:00.
(Wo das wohl wieder herkommt??)
Hier meine Fehlerausgbe: (muß ich noch was dran tun, vor allem eine eigene Routine, und das with und .....)
Delphi-Quellcode:
sError : String;
iError : Integer;
dummy : string; { Ausgabe-Datensatz }
dumfld : string; { Ausgabe-Datenfeld }
....
try
  dumfld:=DM_1.mQuery1.fields[i].AsString;
except
  with DM_1.ADOConnection do begin
    if errors.Count>0 then begin
      sError:='ADO-Error: '+CRLF;
      for iError := 0 to Errors.Count - 1 do begin
        sError:=serror+Format('RecordNo: %d %s',[cnt,dummy])+CRLF;
        sError:=serror+Format('FieldName: %s FieldNo: %d',[DM_1.mQuery1.fields[i].FieldName,i])+CRLF;
        sError:=serror+Format('FieldCont.: %s',[dumfld])+CRLF;
        sError:=serror+Format('Error-No.: %d)',[Errors[iError].Number])+CRLF;
        sError:=serror+Format('%s; (SQLState: %s)',[Errors[iError].Description, Errors[iError].SQLState])+CRLF;
        sError:=serror+Format('Source: %s', [Errors[iError].Source])+CRLF;
        sError:=serror+Format('NativeError: %d', [Errors[iError].NativeError])+CRLF;
        ShowMessage(sError);
      end;
    end;
Ich hoffe da kann der eine oder andere etwas mit anfangen.

Gruß
K-H

Bernhard Geyer 26. Sep 2012 13:19

AW: ADO Oracle -Fehlermeldungen
 
Grundsätzliche Frage: Setzt du eine aktuelle Oracle OLE/DB-Provider oder die fehlehafte abgekündigten Provider von MS?

p80286 26. Sep 2012 13:29

AW: ADO Oracle -Fehlermeldungen
 
Nur das echte ORAOLEDB von Oracle.
ich habe übrigens gestern auch die Abkündigung gefunden, da hieß es dann sinngemäß," besorg Dir den richtigen Provider bei Deinem DB-Hersteller".

Gruß
K-H

Nachtrag:
ADO scheint Datumsangaben die vor dem 01.01.0100 liegen nicht zu akzeptieren.
Die DB spielt da aber noch mit.

und noch ein paar Fehlermeldungen:

Code:
ERROR at line 1:
ORA-01841: (full) year must be between -4713 and +9999, and not be 0
Code:
---------------------------
ADO-Error:
RecordNo: 1 
FieldName: (TO_DATE('00010101','YYYYMMDD')) FieldNo: 0
FieldCont.:
Error-No.: -2147217887)
Fehler bei einem aus mehreren Schritten bestehenden Vorgang. Prüfen Sie die einzelnen Statuswerte.; (SQLState: )
Source: Microsoft Cursor Engine
NativeError: 0

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

Bernhard Geyer 26. Sep 2012 13:49

AW: ADO Oracle -Fehlermeldungen
 
Zitat:

Zitat von p80286 (Beitrag 1184562)
ADO scheint Datumsangaben die vor dem 01.01.0100 liegen nicht zu akzeptieren.

Das ist die Grenze des OLE/Windows Datumsformats.
Sieh z.B. hier http://msdn.microsoft.com/en-us/libr....tooadate.aspx

Zitat:

The base OLE Automation Date is midnight, 30 December 1899. The minimum OLE Automation date is midnight, 1 January 0100. The maximum OLE Automation Date is the same as DateTime.MaxValue, the last moment of 31 December 9999.

p80286 26. Sep 2012 14:06

AW: ADO Oracle -Fehlermeldungen
 
Gut zu wissen,
aber die Fehlermeldung ist Saahne.

Sie tritt übrigens auch auf, wenn solche Konstrukte genutzt werden:
Code:
select 'Sehr geehrter Herr '||name||chr(13)||chr(10)||'wir freuen uns Ihnen Auftrag '||ordernumber||' zu bestätigen'
from ..
where ..
da liegt die Grenze irgendwo bei 130..150 Zeichen.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:52 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