Also ich würde an deiner Stelle die
neue SQL/99 Join-Syntax einsetzen.
Delphi-Quellcode:
SQL_TEXT1='SELECT COUNT(cases.casekey) '+
'FROM CASES JOIN CASENAME ON CASES.CASEKEY=CASENAME.CASEKEY '+
'LEFT OUTER JOIN TABLENAMETYPE ON CASENAME.NAMETYPEKEY=TABLENAMETYPE.NAMETYPEKEY '+
'WHERE CASENAME.NAMEKEY=:NameKey';
Diese neue Syntax hat 2. Vorteile:
1.) Datenbank + Anwendung ist leichter auf andere Datenbanken portierbar und ausserdem leichter zu lesen weil man genau sieht was wie verjoinet wird.
2.) Die
SQL-Anweisung wird ja zur Laufzeit von der
VCL bzw.
ADO geparsed. Dabei wird versucht, Parameter sowie dessen Datentypen zu ermitteln.
Dabei dürfte der Parser mit der Standard JOIN Syntax besser zurechkommen als mit der proparitären JOIN-Syntax von Oracle.
Um den Parameter zu befüllen würde ich folgenden Weg verwenden (weil kürzeste Schreibweise):
Doub_DM.ADOQuery1.Parameters.ParamValues['_NAMEKEY']:=namekey;