AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Ansi-Join provoziert Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Ansi-Join provoziert Fehler

Ein Thema von p80286 · begonnen am 7. Feb 2014 · letzter Beitrag vom 11. Feb 2014
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von p80286
p80286

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

Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 11:31
Datenbank: oracle • Version: 11 • Zugriff über: egal(?)
Hallo zusammen

hier ist ja schon öfter mal über ANSI-Joins Ja oder Nein diskutiert worden, mit folgender Abfrage habe ich dann folgenden Fehler provozieren können:
Code:
select tab1.Feld1,tab2.Feld2,Tab3.*
from tab1 join tab2 using (idkey)
          join tab3 on (tab2.seckey=tab3.objectkey)
where ....
Zitat:
Im Projekt XXX ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 4440F60B in Modul 'OraOLEDBrst11.dll'. Lesen von Adresse ABABABAB' aufgetreten.
Wohlgemerkt, es kommt keine ORACLE-Fehlermeldung, das ein Qualifier nicht genutzt werden darf.

denn
Code:
select tab1.Feld1,tab2.Feld2,Tab3.Felda
from tab1 join tab2 using (idkey)
          join tab3 on (tab2.seckey=tab3.objectkey)
where ....
funktioniert dann wieder.

Joint man nach "alter Väter Sitte"
Code:
select tab1.Feld1,tab2.Feld2,Tab3.*
from tab1,tab2,tab3
where tab1.idkey=tab2.idkey
  and tab2.seckey=tab3.objectkey
  and ....
gibt es keine Probleme und Fehlermeldungen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 11:36
Sieht nach einem Fehler im OleDB-Treiber aus.
Markus Kinzler
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 11:47
Die Adresse ABABABAB klingt mir auch stark nach einer "Magic" Adresse, die einen (als unmöglich auftretend gedachten) Fehler leichter auffindbar machen soll. Hat man früher zumindest gerne mal gemacht so. Da scheint wirklich was in der DLL struppig zu sein.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 12:12
Vergiss die Adresse, bei drei Aufrufen war sie dreimal anders.
Wo zum .. kommt die DLL her? Tante G hat da nichts erhellendes gebracht, nur die üblichen Besserwisserseiten.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 15:07
Meine Theorie ist:
- offensichtlich kein "ORA-" Fehler, also ein Treiberproblem (OLEDB)
- Die Joinvarianten, die Du produzierst, sind nur der Auslöser, da sie
- vermutlich durch andere Ausführungspläne bzw. in einem Fall anderes Select Statement
-> andere Daten ausspucken
Da liegt dann der Hase im Pfeffer.
Der Treiber hat ein Problem mit den Daten.

Typischerweise sind das Date Werte vor Christi Geburt usw.

Vielleicht kannst Du das durch eingrenzen des selects nachvollziehen. Es müsste demzufolge ein Single Table Select reichen (ohne Join) um das Problem zu reproduzieren. (wenn man die fehlerhaften Daten erwischt)

Seit ich auf Oracle OLEDB umgestiegen bin (glaub aktuell Version 11.2 bei mir) hab ich sowas (Treiberprobleme mit Dateninhalten) allerdings nicht mehr erlebt.

P.S.: Hab grad erst die "OraOLEDBrst11.dll" im Post endeckt. Also 11er Oracle OLEDB Client?
Ist schon etwas her, aber ich erinner mich, dass ich "damals" den Instant Client 11.2 vorinstalliert habe und den OLEDB Teil aus den älteren "ODAC" Komponenten nachinstalliert. Um eben halt so aktuell wie möglich zu sein. Mittlerweile dürfte es ja wesentlich aktuellere Treiber geben.
Gruß, Jo

Geändert von jobo ( 7. Feb 2014 um 15:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 15:14
Vielleicht hilft dir das weiter:

http://www.pcmaxutilities.com/wikidl...fix-guide.html

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 15:17
Nee die Datenwerte aus der Steinzeit hab ich auch schon mal gehabt, das ist es nicht.
Es liegt einzig an dem "select Tab3.*" be dem ein Feld aus Using mit ausgegeben wird (werden sollte)
bloß gibts dann normalerweise einen richtigen ORA.Fehler.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 15:51
Und was ist wenn "using(idkey)" durch "on tab1.idkey=tab2.idkey" ersetzt wird?
Ralph
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#9

AW: Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 15:58
Nee die Datenwerte aus der Steinzeit hab ich auch schon mal gehabt, das ist es nicht.
Es liegt einzig an dem "select Tab3.*" be dem ein Feld aus Using mit ausgegeben wird (werden sollte)
bloß gibts dann normalerweise einen richtigen ORA.Fehler.

Gruß
K-H
Wenn Du das schon weißt, was ist dann die Frage?
Das Tab3.* hat mit dem using eigentlich nichts zu tun, denn das using bezieht sich auf den Join von tab1 und tab2, während tab3 einen expliziten "on " Join hat (und das Asterisks gemurkse vom using nicht relevant sein dürfte). Daher dürften die komischen Feld Selektor Alias Automatismen (ich find sowas furchtbar) nicht greifen. Hat aber vielleicht irgendjemand bei Oracle selbst nicht verstanden und falsch programmiert.
Aber vielleicht hab ich es auch nicht verstanden

@Mikal: Ist das etwa Humor hier in der DP?!
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Ansi-Join provoziert Fehler

  Alt 7. Feb 2014, 18:18
Nee die Datenwerte aus der Steinzeit hab ich auch schon mal gehabt, das ist es nicht.
Es liegt einzig an dem "select Tab3.*" be dem ein Feld aus Using mit ausgegeben wird (werden sollte)
bloß gibts dann normalerweise einen richtigen ORA.Fehler.
Bei Oracle sollte man mit allem rechnen!
Während meiner Studienzeit hat es ein Mitkommilitone geschafft durch eine Select-Anweisung das ganz Uni-Netz lahm zu legen (ok, der Server auf dem die Oracle-DB lag war nicht nur DB-Server).
Windows Vista - Eine neue Erfahrung in Fehlern.
  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:24 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