Hallo,
da hier bisher nichts gekommen ist, versuche ich es mal mit meinem "fundierten Halbwissen"
Wenn Du den Quelltext der Prozedur einer
Query zuweist
Delphi-Quellcode:
zQuery1.sql.clear;
zQuery1.sql.add('SET TERM ^ ;');
zQuery1.sql.add('CREATE OR ALTER PROCEDURE CLEARNUMERIC (');
zQuery1.sql.add(' INPUTSTR Varchar(100)');
zQuery1.sql.add(')');
zQuery1.sql.add('RETURNS (Result Varchar(100)) AS');
zQuery1.sql.add('BEGIN');
zQuery1.sql.add(' Result = '''';');
zQuery1.sql.add(' WHILE (InputStr <> '''') DO BEGIN');
zQuery1.sql.add(' IF (''0123456789'' NOT LIKE ''%'' || SUBSTRING(InputStr FROM 1 FOR 1) || ''%'') THEN');
zQuery1.sql.add(' BEGIN');
zQuery1.sql.add(' Result = Result || SUBSTRING(InputStr FROM 1 FOR 1);');
zQuery1.sql.add(' END');
zQuery1.sql.add(' InputStr = SUBSTRING(InputStr FROM 2);');
zQuery1.sql.add(' END');
zQuery1.sql.add(' SUSPEND;');
zQuery1.sql.add('END^');
zQuery1.sql.add('SET TERM ; ^');
und anschließend die
Query mit
zQuery1.ExecSQL;
ausführst, so hoffe ich, dass dann in der Datenbank die Prouedur angelegt wurde.
Anschließend sollte eine Abfrage unter Benutzung der Prozedur funktionieren.
SQL-Code:
SELECT *
FROM IDOC_REAL
WHERE (SELECT result FROM CLEARNUMERIC(ScanCode)) <> 'F'
So wie omata das oben bereits beschrieben hat.
Stephan