![]() |
Datenbank: Paradox • Zugriff über: SQL oder Table
SQL-Text Abfrage
Hi alle Datenbankprogrammierer,
Gibt es eine Funktion bei der SQL oder Table, womit ich die ganze Datenbank nach einem bestimmten Text durchsuchen kann? Es geht darum: Wenn ich jetzt in einem Editfeld z.b. 'Heim' reinschreibe soll er die ganze Datenbank im Feld 'Stadt' nach diesem 'Heim' durchsuchen. Egal an welcher Stelle es steht Z.b. 'Heim' Stadt: Weisenheim Freinsheim .... Ich habs jetzt so gamacht, das ich beim Edit OnChange den Text nehme und mit ner while-Schleife das Feldwert mit dem im Edit vergleiche und wenn es net stimmt, geht er alle Zeichen bis zu den jetzten durch...und dan das gleiche mit dem nächsten... und diese Einträge werden dan in ner Listbox angezeigt. Wenn ich mir jetzt aber vorstelle so 100 Einträge, was bei der Datenbank der Fall sein kann später, dauert das sicher lange. Ist dan net ne SQL Abfrage schneller oder irre ich da??? Und... Geht das überhaupt :gruebel: |
Re: SQL-Text Abfrage
Meinst du ganze Datenbank oder doch nur die Position in einer Spalte?
Dafür wäre der Like-Befehl da:
SQL-Code:
select * from mytabelle where Upper(myfeld) like '%HEIM%'
|
Re: SQL-Text Abfrage
Zitat:
Alle Datensätze einer Tabelle mit SELECT * FROM ... auslesen, alle Datensätze durchwandern und jedes String/Widestring-Feld mit deinem Suchmuster vergleichen. Oder du schreibst eine Abfrage, die speziell auf eine bestimmte Tabelle zugeschnitten ist:
SQL-Code:
SELECT * FROM Tabelle
WHERE (Feld1 like '%test%') or (Feld2 like '%test%') or ... *) beim MS SQL Server gibt es einen ![]() |
Re: SQL-Text Abfrage
Danke euch beiden. Habs grad getestet aber ich funkt irgentwie net. Zugegeben ich arbeite net viel damit aber ich brauch das für ne Unternehmer-Software
SQL-Code:
Er nihmmt es mir an, aber er zeigt nichts an
Select * From "Kunden.db"
As Kunden where Upper("Vorname") like '%STE%' beim Button click sag ich Close, Open. In der datenbank steht eine Datensatz wo der Vorname Stefan ist. den müsste er reinthoretisch finden oder??? Hab Delphi 5. Es passiert nichts. |
Re: SQL-Text Abfrage
Du solltest mal die gesamte WHERE-Bedingung weglöschen, nur um zu prüfen, ob dann überhaupt ein Datensatz angezeigt wird.
Und dann würde ich die doppelten Anführungszeichen um "Vorname" mal weglassen:
SQL-Code:
Select * From "Kunden.db"
As Kunden where Upper(Vorname) like '%STE%' |
Re: SQL-Text Abfrage
1. Ist das 'Upper' wirklich notwendig?
2. Versuche anstatt '%' einmal '*'. |
Re: SQL-Text Abfrage
Liste der Anhänge anzeigen (Anzahl: 1)
Funkt genauso wenig....auch net ohne Anführungszeichen und '*' stat '%'
Liegt auch net am Feld, weil ich es auch mit Nachname versucht habe und es auch ohne % oder * versucht und stat ' hab ich auch " eingesetzt macht er alles net die Tabelle die damit verbunden ist funkt auch net habe mal nene Tabellen ausschnitt als Bild von der Tabelle (VCL). entweder bin ich zublöd oder es stimmt was net :wall: EDIT: Ohne WHERE Werden alle angezeigt!! Bin kru Fersehr gugen werde vermutlich erst wieder um ca. 19:30 antworten.. |
Re: SQL-Text Abfrage
Versuch es mal mit dem Aliasnamen:
SQL-Code:
Select
* From "Kunden.db" Kunden where Upper(Kunden.Vorname) like '%STE%'; |
Re: SQL-Text Abfrage
Juhu........
es klappt danke mkinzler jetzt funkts Auch dank an alle anderen die mir geholfen haben meiner Lösung näher zukommen :zwinker: :mrgreen: Gruß NickelM |
Re: SQL-Text Abfrage
Hallo,
SQL-Code:
das klappt bei mir.
Select * From Kunden
where Upper(Kunden.Vorname) like '%STE%'; zu spät ;( Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 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 by Thomas Breitkreuz