AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken ADO Oracle -Fehlermeldungen
Thema durchsuchen
Ansicht
Themen-Optionen

ADO Oracle -Fehlermeldungen

Ein Thema von p80286 · begonnen am 26. Sep 2012 · letzter Beitrag vom 26. Sep 2012
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

ADO Oracle -Fehlermeldungen

  Alt 26. Sep 2012, 14:09
Datenbank: Oracle • Version: egal • Zugriff über: ADO
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 .Cursorlocation von clUseClient auf 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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: ADO Oracle -Fehlermeldungen

  Alt 26. Sep 2012, 14:19
Grundsätzliche Frage: Setzt du eine aktuelle Oracle OLE/DB-Provider oder die fehlehafte abgekündigten Provider von MS?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: ADO Oracle -Fehlermeldungen

  Alt 26. Sep 2012, 14:29
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

---------------------------
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (26. Sep 2012 um 14:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: ADO Oracle -Fehlermeldungen

  Alt 26. Sep 2012, 14:49
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: ADO Oracle -Fehlermeldungen

  Alt 26. Sep 2012, 15:06
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:53 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