AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Text Abfrage

Ein Thema von NickelM · begonnen am 1. Sep 2008 · letzter Beitrag vom 1. Sep 2008
Antwort Antwort
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#1

SQL-Text Abfrage

  Alt 1. Sep 2008, 16:23
Datenbank: Paradox • Zugriff über: SQL oder Table
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
Nickel
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: SQL-Text Abfrage

  Alt 1. Sep 2008, 16:33
Meinst du ganze Datenbank oder doch nur die Position in einer Spalte?

Dafür wäre der Like-Befehl da:

select * from mytabelle where Upper(myfeld) like '%HEIM%'
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: SQL-Text Abfrage

  Alt 1. Sep 2008, 16:43
Zitat von NickelM:
Gibt es eine Funktion bei der SQL oder Table, womit ich die ganze Datenbank nach einem bestimmten Text durchsuchen kann?
Nein, eine ganze Datenbank (*) geht sowieso nicht und bei einer ganzen Tabelle müsstest du das selber programmieren:
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 Fulltext Search service
Andreas
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#4

Re: SQL-Text Abfrage

  Alt 1. Sep 2008, 17:11
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:
Select * From "Kunden.db"
As Kunden
where Upper("Vorname") like '%STE%'
Er nihmmt es mir an, aber er zeigt nichts an
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.
Nickel
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: SQL-Text Abfrage

  Alt 1. Sep 2008, 17:19
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%'
Andreas
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: SQL-Text Abfrage

  Alt 1. Sep 2008, 17:23
1. Ist das 'Upper' wirklich notwendig?
2. Versuche anstatt '%' einmal '*'.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#7

Re: SQL-Text Abfrage

  Alt 1. Sep 2008, 17:41
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

EDIT: Ohne WHERE Werden alle angezeigt!!
Bin kru Fersehr gugen werde vermutlich erst wieder um ca. 19:30 antworten..
Angehängte Grafiken
Dateityp: bmp tabelle_153.bmp (46,4 KB, 8x aufgerufen)
Nickel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: SQL-Text Abfrage

  Alt 1. Sep 2008, 17:45
Versuch es mal mit dem Aliasnamen:
SQL-Code:
Select
    *
From
    "Kunden.db" Kunden
where
    Upper(Kunden.Vorname) like '%STE%';
Markus Kinzler
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#9

Re: SQL-Text Abfrage

  Alt 1. Sep 2008, 18:25
Juhu........
es klappt danke mkinzler jetzt funkts

Auch dank an alle anderen die mir geholfen haben meiner Lösung näher zukommen

Gruß
NickelM
Nickel
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: SQL-Text Abfrage

  Alt 1. Sep 2008, 18:35
Hallo,

SQL-Code:
Select * From Kunden
where Upper(Kunden.Vorname) like '%STE%';
das klappt bei mir.

zu spät ;(


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:24 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