Hallo Leute!
Vielen Dank für die Hilfe (immer wieder gute in der Delphi-Praxis
)
Das mit dem "LEFT JOIN" war das ganze Problem, was mir aber jetzt bei größeren Datenmengen auffällt, das
der Zugriff so einfach zu langsam ist und ich habe noch nichtmal alle Suchfelder der virtuellen Tabelle drinnen, die ich brauche.
SQL-Code:
SELECT *
from
dbo.VORGANG v
join dbo.VORGADR va on va.ROWVORGANG = v.ROWVORGANG
left join dbo.PROJEKTORDNER po on (po.OBJEKTNR = v.ROWVORGANG AND po.OBJEKTKZ = 'VOR')
left join dbo.PROJEKTE p on p.ROWPROJEKT = po.ROWPROJEKT
WHERE v.BELEGART = 'TR'
AND (
UPPER(v.VORGANGNR) LIKE '%'+UPPER('FR')+'%'
OR UPPER(v.BETREFF) LIKE '%'+UPPER('FR')+'%'
OR UPPER(v.FREMDEAUFTNR) LIKE '%'+UPPER('FR')+'%'
OR UPPER(v.FREMDEKOMNR) LIKE '%'+UPPER('FR')+'%'
)
Meine Standard-Suchfunktion (über Delphi) reagiert auf jeden Tastendruck und soll dann gleich das ganze Ergebnis liefern, bei einer Tabelle war das bis jetzt kein Problem, aber jetzt braucht er immer alleine schon einen Moment die JOIN's zu machen.
Frage:
Muss ich die JOIN's überhaubt jedesmal bei einer Suchtextänderung ausführen, oder reicht das ganze einmal und danach nur den Teil ab dem "WHERE...". Gibt es evtl. eine einfache
SQL-Abfrage, die prüft ob die Virtuelle-Tabelle noch aktuell und vorhanden ist, und wenn ja diesen Teil einfach überspringt?
Gruß
Thorsten