Hallo,
ich habe eine Definition einer Stored Procedure, die auszugsweise so aussieht:
SQL-Code:
CREATE PROCEDURE KAEUFERZUORDNUNG (
INOHR VARCHAR(25))
RETURNS (
AUSGANZ INTEGER)
AS
DECLARE VARIABLE WOCHE VARCHAR(5);
DECLARE VARIABLE OHR VARCHAR(25);
DECLARE VARIABLE LIEFERANT VARCHAR(5);
DECLARE VARIABLE ERFNR VARCHAR(6);
DECLARE VARIABLE ERFDATUM DATE;
DECLARE VARIABLE KNR VARCHAR(5);
DECLARE VARIABLE LNR SMALLINT;
DECLARE VARIABLE ART VARCHAR(5);
DECLARE VARIABLE GESCHLECHT CHAR(1);
DECLARE VARIABLE BEM VARCHAR(10);
DECLARE VARIABLE WAHL CHAR(1);
DECLARE VARIABLE LAND CHAR(2);
DECLARE VARIABLE KPTGEWB FLOAT;
DECLARE VARIABLE ZUABK FLOAT;
DECLARE VARIABLE PREIS FLOAT;
DECLARE VARIABLE GEBDAT DATE;
DECLARE VARIABLE ANZ INTEGER;
begin
/* Procedure Text */
ausganz = 0;
if (INOHR = 'ALL') then
begin
for select WOCHE, OHR_NR, LIEFERANT,
ERFASS_NR, ERFASSUNGSDATUM, KUNDEN_NR,
LAUF_NR, ART, GESCHLECHT,
BEMERKUNG, WAHL, LAND,
KPT_GEW_B, ZU_AB_K, PREIS,
GEBURTSDATUM FROM export
where (KUNDEN_NR is not null) and
(KUNDEN_NR <> '')
into :woche, :ohr, :lieferant, /* <---- hier */
:erfnr, :erfdatum, :knr,
:lnr, :art, :geschlecht,
:bem, :wahl, :land,
:kptgewb, :zuabk, :preis,
:gebdat do
begin
ausganz = ausganz+1;
...
Diese
Query Lade ich wie folgt in die
SQL Eigenschaft einer IBQuery oder einer IBSQL Komponente:
Delphi-Quellcode:
IBSQLAdmin.SQL.LoadFromFile(fname);
ShowMessage(IBSQLAdmin.SQL.Text);
IBSQLAdmin.Transaction.StartTransaction;
IBSQLAdmin.ExecQuery;
Das ShowMessage habe ich nur reingepackt, um zu sehen, dass auch die richtige Anweisung geladen wird.
Das
SQL Statement wird abgeprochen mit unknown token an der Stelle, an der der erste Doppelpunkt auftritt, also bei :woche. Warum?
[edit]
Bei Eingabe über IBExpert, funktioniert das Statement.
[/edit]