![]() |
Re: Falsche Zeichen in einem DB-Feld per SQL finden
Trotzdem vielen Dank für dein Bemühen Stephan,
nun versuch ich´s mal mit der Version von OMATA. Hier weis ich allerdings noch nicht, wie ich den Code einbinde und vor allem wo
Delphi-Quellcode:
hat jemand eine kleine Hilfestellung für mich ?
SET TERM ^ ;
CREATE OR ALTER PROCEDURE CLEARNUMERIC ( INPUTSTR Varchar(100) ) RETURNS (Result Varchar(100)) AS BEGIN Result = ''; WHILE (InputStr <> '') DO BEGIN IF ('0123456789' NOT LIKE '%' || SUBSTRING(InputStr FROM 1 FOR 1) || '%') THEN BEGIN Result = Result || SUBSTRING(InputStr FROM 1 FOR 1); END InputStr = SUBSTRING(InputStr FROM 2); END SUSPEND; END^ SET TERM ; ^ |
Re: Falsche Zeichen in einem DB-Feld per SQL finden
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:
und anschließend die Query mit
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 ; ^');
Delphi-Quellcode:
ausführst, so hoffe ich, dass dann in der Datenbank die Prouedur angelegt wurde.
zQuery1.ExecSQL;
Anschließend sollte eine Abfrage unter Benutzung der Prozedur funktionieren.
SQL-Code:
So wie omata das oben bereits beschrieben hat.
SELECT *
FROM IDOC_REAL WHERE (SELECT result FROM CLEARNUMERIC(ScanCode)) <> 'F' Stephan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz