AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Falsche Zeichen in einem DB-Feld per SQL finden
Thema durchsuchen
Ansicht
Themen-Optionen

Falsche Zeichen in einem DB-Feld per SQL finden

Ein Thema von nachtstreuner60 · begonnen am 16. Jul 2008 · letzter Beitrag vom 17. Jul 2008
Antwort Antwort
Seite 4 von 4   « Erste     234   
nachtstreuner60

Registriert seit: 15. Jan 2007
Ort: Eisenach
54 Beiträge
 
Delphi 7 Professional
 
#31

Re: Falsche Zeichen in einem DB-Feld per SQL finden

  Alt 17. Jul 2008, 13:42
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:
SET TERM ^ ;
CREATE OR ALTER PROCEDURE CLEARNUMERIC (
  INPUTSTR Varchar(100)
)
RETURNS (Result Varchar(100)) AS
BEGIN
  Result = '';
  WHILE (InputStr <> '') DO BEGIN
    IF ('0123456789NOT 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 ; ^
hat jemand eine kleine Hilfestellung für mich ?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#32

Re: Falsche Zeichen in einem DB-Feld per SQL finden

  Alt 17. Jul 2008, 18:25
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz