AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi firebird 1.5: eigenartiges verhalten
Thema durchsuchen
Ansicht
Themen-Optionen

firebird 1.5: eigenartiges verhalten

Ein Thema von sancho1980 · begonnen am 27. Mai 2006 · letzter Beitrag vom 27. Mai 2006
Antwort Antwort
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#1

firebird 1.5: eigenartiges verhalten

  Alt 27. Mai 2006, 00:06
Datenbank: firebird • Zugriff über: ibx, ibexpert
hallo

ich habe hier folgenden query:

SQL-Code:
select first 1 dic.id
from dicentries dic
inner join dskrptlink_dicentries dl on dic.id = dl.id_dicentry
inner join dskrpts d on dl.id_dskrpt = d.id
where d.asdskrpt = :asdskrptinput
and dic.id >= :idin
order by dic.id ascending
jetzt folgende information dazu: ich WEIß, dass wenn ich
:idin auf 1 und
:asdskrptinput auf '^' setze,

die gewünschte ergebnis-menge id = 1 sein müsste.

wenn icn den query aber in ibexpert abfeuere, fängt der scheinbar an zu suchen als ob es kein morgen gäbe und ich muss ibexpert abschießen.
was aber noch viel eigenartiger ist:
wenn ich die parameterbelegung beibehalte und die vorletzte zeile abändere auf

and dic.id = :idin

dann bekomm ich das gewünschte ergebnis (id = 1) sofort. auch wenn ich die gesamte vorletzte zeile auskommentiere

kann sich/mir einer das verhalten erklären?

danke,

martin
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: firebird 1.5: eigenartiges verhalten

  Alt 27. Mai 2006, 02:40
Glaskugel sagt : Sieht ziemlich nach ungewolltem kartesischem Produkt aus. Denn : 4 Felder sind per JOIN dran beteiligt und die haben wie es aussieht nichts miteinander zu tun. Die WHERE-Klausel besteht aus lediglich einer Einschränkung der Datenmenge. Parameter passen wohl auch nicht recht. Es wird also ziemlich alles unnötige gleich mitgeschleppt. Auf den ersten Blick siehts zumindest mal so aus. Die Tatsache, daß es nötig ist, sogar IBExpert "abzuschießen" : würde das SQL-Statement so stimmen, dann wäre es überflüssig, was abzuschießen. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#3

Re: firebird 1.5: eigenartiges verhalten

  Alt 27. Mai 2006, 02:41
Ich kann's Dir zwar (um diese Uhrzeit) nicht richtig erklären aber:
im Prinzip kannst du die query auch so machen
SQL-Code:
select first 1 dl.id_dicentry
from dskrptlink_dicentries dl
inner join dskrpts d on d.id = dl.id_dskrpt
where d.asdskrpt = :asdskrptinput
and dl.id_dicentry >= :idin
order by dl.id_dicentry ascending
das Erebnis ist dasselbe. Ausserdom soltest Du bei einem InnerJoin auch die zu joinende Tabelle bzw. deren Join Feld nach innen nehmen, ansonsten wird diese nämlich zum hauptkriterium des joins und damit indefinit. (Wenn ich noch richtig zusammenbringe
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  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 05:23 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