AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi OleException bei Select auf Spalte mit Datentyp Date

OleException bei Select auf Spalte mit Datentyp Date

Ein Thema von sirius · begonnen am 31. Jul 2007 · letzter Beitrag vom 25. Jan 2012
Antwort Antwort
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

OleException bei Select auf Spalte mit Datentyp Date

  Alt 31. Jul 2007, 21:32
Datenbank: Oracle • Version: 9.0.1 • Zugriff über: ADO
Ich habe eine Datenbank in der in einer Tabelle Zeiten drinstehen. Diese Spalte ist vom Datentyp "Date". Jetzt würde ich gerne so eine Zeit auslesen (reinschreiben funktioniert problemlos). Das Auslesen wünschte ich mir so:
Delphi-Quellcode:
with ZQuery.SQL do begin
  clear;
  add('Select');
  add('min('+cdatum+') as k,');
  add('max('+cdatum+') as g');
  add('from '+cdbt+cdatum);
end;
DoActive(zquery); //zquery.active:=true
if zquery.isempty then modalresult:=mrabort;
mindate:=trunc(ZQuery.fieldbyname('k').AsFloat);
maxdate:=trunc(ZQuery.fieldbyname('g').AsFloat);
Hinter Doactive steht nur ein "Zquery.active:=true;" mit Exceptionbehandlung. Es ist egal, ob ich den Ausdruck direkt hinschreibe oder in dieser Methode. Der Fehler ist derselbe.
Achja und die Konstanten sind Strings mit folgendem Inhalt
cDatum='DATUM'
cdbt='DBT_'
Wenn ich active auf true setze kommt eine EOleException mit der Message: "Es gibt keine weiteren Ergebnisse."
Über die BDE lief das alles früher mal ohne Probleme/Exception.

Nach ausgezupften Haaren und langem Suchen (Diese Meldung ergibt doch gute 2,5 Ergebnisse bei Google) habe ich diese Lösung gefunden:
Delphi-Quellcode:
with ZQuery.SQL do begin
  clear;
  add('Select');
  add('min('+cdatum+'-to_date(''31/12/1899'',''DD/MM/YYYY'')) as k,');
  add('max('+cdatum+'-to_date(''31/12/1899'',''DD/MM/YYYY'')) as g');
  add('from '+cdbt+cdatum);
end;
DoActive(zquery);
if zquery.isempty then modalresult:=mrabort;
mindate:=trunc(ZQuery.fieldbyname('k').AsFloat);
maxdate:=trunc(ZQuery.fieldbyname('g').AsFloat);
Nun finde ich die Lösung nicht so ganz zufriedenstellend. Ich weis nun nicht, ob es an dem OLE DB-Treiber liegt (der Connectionstring ist "Provider=OraOLEDB.Oracle.1;Persist Security Info=True;Data Source=TestDB") oder an den ADO-Kompos. Die Query ist übrigens mit einer ADOConnection verbunden.

Ansonsten läuft alles einwandfrei (mit der Datenbank)

Noch ne Sache: Wenn diese Exception aufgetreten ist, dann kann einer meiner Threads (der in regelmäßigen Abständen eine andere Tabelle überprüft und seine eigenen ADO-Instanzen hat) plötzlich die einfachste Abfrage nicht mehr (ein select auf ein Number- und ein VarChar- Feld) das sonst, parallel zu allen anderen Sachen immer funktioniert. Der wirft auch ne Exception.

Vielleicht kennt das Problem jemand und ich habe nur die ADO-Kompos in die falsche Hand genommen.

Danke im Vorraus!
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: OleException bei Select auf Spalte mit Datentyp Date

  Alt 31. Jul 2007, 21:36
Meine Erfahrungen bei Oracle-DB-SW ist das winzige Versionsunterschiede DB, Net-Client, ... zu gewaltigen Problemen führen können.
Ich empfehle dir z.B. Native Kompos wie von Core Labs zu verwenden und ADO links liegen zu lassen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: OleException bei Select auf Spalte mit Datentyp Date

  Alt 31. Jul 2007, 21:56
Das wären dann die "Oracle Data Access components". (bei mir für Delphi 7)

Werd ich demnächst mal ausprobieren.
Zitat:
In Direct mode, ODAC connects to Oracle directly without using Oracle client software. In this mode, ODAC requires only TCP/IP support, and lets you build really thin database applications.
Bedeutet dies, ich muss auf dem Client-PC nix mehr installieren? Nur die Exe drauf und ab gehts?

Aber vielleicht hat ja trotzdem noch jemand auf das ADO-Problem eine Antwort.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: OleException bei Select auf Spalte mit Datentyp Date

  Alt 31. Jul 2007, 22:53
Zitat von sirius:
Bedeutet dies, ich muss auf dem Client-PC nix mehr installieren? Nur die Exe drauf und ab gehts?
Ja. Und damit hat man nur noch 3 Fehlerquellen:

Eigene App, Core Labs Compos, Oracle DB

im Gegensatz zu ADO:

Eigene App, ADOExpress, ADO, OLE DB-Provider (Oracle), Oracle DB

wobei ich vor allem die Oracle-Teile erfahrungstechnisch nicht gerade sehr Fehlerfrei sind.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: OleException bei Select auf Spalte mit Datentyp Date

  Alt 1. Aug 2007, 16:43
Hmmm, na ganz alleine scheint die Exe dann doch nicht zu gehen. Zumindest beim ersten TEst konnte ich ih nicht überreden die bpl's selber mitzunehmen.

aber, das hat sich erstmal. In diesem Projekt ist die Begeisterung nicht grad hoch gewesen $200 auszugeben. Unis sind halt immer pleite. Naja, mal sehen, vielleicht im nächsten Projekt.

Jetzt muss ich mich erstmal mit ADO rumschlagen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: OleException bei Select auf Spalte mit Datentyp Date

  Alt 1. Aug 2007, 17:20
Mußt du den bei Zeos bei Oracle über ADO gehen? Wird hier nicht der NET-Client unterstützt?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: OleException bei Select auf Spalte mit Datentyp Date

  Alt 1. Aug 2007, 17:36
Zitat von Bernhard Geyer:
Zeos bei Oracle

Ich habe bisher noch nix mit Zeos am Hut gehabt. Oder denkst du, weil es "ZQuery" heist, ist es Zeos? Also das "Z" steht für Ziel und ist ein TADOQuery.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: OleException bei Select auf Spalte mit Datentyp Date

  Alt 1. Aug 2007, 21:35
Zitat von sirius:
Zitat von Bernhard Geyer:
Zeos bei Oracle

Ich habe bisher noch nix mit Zeos am Hut gehabt. Oder denkst du, weil es "ZQuery" heist, ist es Zeos?
Genau
Zitat von sirius:
und ist ein TADOQuery.
Also noch viel Glück mit ADO. Micht reicht schon die vielen Fehler in Oracle-SW ohne ADO/OLE DB.
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
 
#9

AW: OleException bei Select auf Spalte mit Datentyp Date

  Alt 25. Jan 2012, 10:56
Den Fehler kann ich z.B. so provozieren:
Code:
select * from Name,Adresse where name='Rumpelstielzchen'
Ok Rumpelstielzchen sollte es geben, aber dann geht die Luzie ab.
Ich habe den Eindruck, daß "Es gibt keine weiteren Ergebnisse" auf einen Bufferoverflow oder ähnliches hindeutetet, weil es zu viele Datensätze in der Ergebnismenge gibt

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.169 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: OleException bei Select auf Spalte mit Datentyp Date

  Alt 25. Jan 2012, 11:00
Den Fehler kann ich z.B. so provozieren:
Code:
select * from Name,Adresse where name='Rumpelstielzchen'
Ok Rumpelstielzchen sollte es geben, aber dann geht die Luzie ab.
Ich habe den Eindruck, daß "Es gibt keine weiteren Ergebnisse" auf einen Bufferoverflow oder ähnliches hindeutetet, weil es zu viele Datensätze in der Ergebnismenge gibt

Gruß
K-H
WOW. 4 Jahre alten Thread aufwärmen.

Hast du alle Oracle-Treiber auf aktuellen Stand? Gehst du auch über die fehlerhaften MS-Oracle-ADO-Treiber auf die DB los?
Wir konnten im Studium mit fehlerhaften SQL-Statement das ganze Uni-Netz wegen Fehler in einem Oracle-Treiber lahm legen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:55 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