Hallo,
Ich finde keine Lösung zu folgenden Problemstellungen:
a) Es existieren mehr als 60 Tabellen (Interbase 5.6).<br>
Ich möchte eine einzige Stored Procedure machen, welche die Anzahl der Datensätze in der aufgerufenen Tabelle zurückgibt.
CREATE PROCEDURE GetAnzRecs( TableName CHAR(32))<br>
RETURNS (Anzahl INTEGER)<br>
AS<br>
BEGIN<br>
SELECT COUNT(FirstAnlage)<br>
FROM TabVO /* Tabelle muss fix angegeben werden */<br>
INTO :Anzahl;<br>
SUSPEND;<br>
END ^
Ich finde keine Möglichkeit den Tabellennamen der Stored Procedure als Parameter zu übergeben, so dass die Datensätze einer beliebigen Tabelle ausgelesen werden können.
Eine Angabe ... FROM :TableName ... ist nicht möglich.<br>
Das Token : ist nach FROM anscheinend nicht zulässig.
Ich stelle mir vor, weil der Tabellenname fix in die Datenbank hineinkompiliert wird ?
b) Ich möchte diese und ähnliche Proceduren nicht als SQL-Script, sondern mittels einer TQuery und ExecSQL in Delphi-Pascal in der Datenbank anlegen.
Die Datenbank meldet jedoch einen Fehler bei SET TERM ^; wobei das Token TERM nicht erkannt wird.
Ohne die Angabe von SET TERM ist jedoch keine Anlage möglich, da im Text mehrere Zeilenbegrenzer ; vorkommen.
Gruss<br>Helmut
Ich finde keine Lösung zu folgenden Problemstellungen:
a) Es existieren mehr als 60 Tabellen (Interbase 5.6).<br>
Ich möchte eine einzige Stored Procedure machen, welche die Anzahl der Datensätze in der aufgerufenen Tabelle zurückgibt.
CREATE PROCEDURE GetAnzRecs( TableName CHAR(32))<br>
RETURNS (Anzahl INTEGER)<br>
AS<br>
BEGIN<br>
SELECT COUNT(FirstAnlage)<br>
FROM TabVO /* Tabelle muss fix angegeben werden */<br>
INTO :Anzahl;<br>
SUSPEND;<br>
END ^
Ich finde keine Möglichkeit den Tabellennamen der Stored Procedure als Parameter zu übergeben, so dass die Datensätze einer beliebigen Tabelle ausgelesen werden können.
Eine Angabe ... FROM :TableName ... ist nicht möglich.<br>
Das Token : ist nach FROM anscheinend nicht zulässig.
Ich stelle mir vor, weil der Tabellenname fix in die Datenbank hineinkompiliert wird ?
b) Ich möchte diese und ähnliche Proceduren nicht als SQL-Script, sondern mittels einer TQuery und ExecSQL in Delphi-Pascal in der Datenbank anlegen.
Die Datenbank meldet jedoch einen Fehler bei SET TERM ^; wobei das Token TERM nicht erkannt wird.
Ohne die Angabe von SET TERM ist jedoch keine Anlage möglich, da im Text mehrere Zeilenbegrenzer ; vorkommen.
Gruss<br>Helmut
Comment