AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL - Suchfunktion einbauen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL - Suchfunktion einbauen

Ein Thema von geLLi · begonnen am 10. Aug 2007 · letzter Beitrag vom 13. Aug 2007
Antwort Antwort
geLLi

Registriert seit: 10. Aug 2007
4 Beiträge
 
#1

SQL - Suchfunktion einbauen

  Alt 10. Aug 2007, 09:38
Datenbank: SQL • Version: 2000 • Zugriff über: ADO
Hallo,

ich hab mal eine Frage.

Vorab, ich bin neu in der Delphi-Programmierung.


Ich hab bereits über ein AccessFormular eine Abfrage zum SQL (2000) Server erstellt. Klappt alles.

Mein Problem ist jetzt, das ich das ganze in Delphi programmieren musse (ohne Access)!


Ich habe ein Suchfeld, einen Suchbutton und eine Suchanzeigebox.

Wenn ein Suchbegriff ins Suchfeld eingegeben wird und auf den Suchbutton geklickt wird, soll in der Suchanzeigebox alle passenden Ergebnisse (Spalte "SuchSchlagwort" in der SQL-Tabelle) angezeigt werden.
Wenn man in der Suchanzeigebox doppelt auf den gefundenen Suchbegriff klickt, soll er zu dem Datensatz springen.
Außerdem soll er den eingegebenen Suchbegriff in einer anderen SQL-Tabelle speichern, um eine Art "TOP10" der Suchbegriffe zu erstellen (das wäre ersteinmal nicht so wichtig!)

Das Ganze ist ein wenig schwer zu erklären.

Ich kopiere den VB-Code mal hinten dran, vielleicht kann damit einer was anfangen!

Zitat:
Private Sub Befehl26_Click()
DoCmd.Requery "sucheanzeige"

Dim strSQL As String

Me!sucheanzeige.Requery
' begriff speicher, wenn suche erfolgreich war und mind. ein treffer gelanded wurde
'If CBool(Me!sucheanzeige.ListCount <= 0) Then Exit Sub
strSQL = "SELECT Count(*) " & _
"FROM dbo_Suchwerte " & _
"WHERE SuchSchlagwort = '" & Me!suchtxt & "'"
If CurrentDb.OpenRecordset(strSQL)(0) = 0 Then
strSQL = "INSERT INTO dbo_Suchwerte " & _
"( SuchSchlagwort, Suchanzahl ) " & _
"VALUES ('" & Me!suchtxt & "', 1 )"
Else
strSQL = "UPDATE dbo_Suchwerte " & _
"SET Suchanzahl = Suchanzahl + 1 " & _
"WHERE SuchSchlagwort = '" & Me!suchtxt & "'"
End If
CurrentDb.Execute strSQL, 128 'dbFailOnError

Me!top10.Requery
End Sub
Bin für jeden kleinen Tipp dankbar!
Hoffe konnte das Problem einigermaßen klar darstellen!

Vielen Dank im Vorraus!

Viele Grüße.
geLLi
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: SQL - Suchfunktion einbauen

  Alt 10. Aug 2007, 10:09
Herzlich willkommen in der Delphi-PRAXiS, geLLi.

Du kannst dein Access-Formular in Delphi nachbilden. Ziehe dir eine ADOConnection auf dein Formular und versuche eine Verbindung zum SQL-Server aufzubauen indem du im Object Inspector (oder per Doppelklick auf die Komponente) die Eigenschaften der Verbindung setzt. Du kannst den Erfolg deiner Bemühungen zur Entwurfszeit prüfen indem du Connected auf True setzt.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
geLLi

Registriert seit: 10. Aug 2007
4 Beiträge
 
#3

Re: SQL - Suchfunktion einbauen

  Alt 10. Aug 2007, 10:31
Hallo,

Danke für deine schnelle Antwort.

Also das Formular hab ich mir schon komplett nachgebaut und auch schon die ADO-Verbidung hergestellt.

Er zeigt mir auch die Datensätze und alles an! klappt!


ich möchte jetzt nur die Suchfunktion einbauen + via Doppelklick in der SuchergebnisBox direkt auf den entsprechenden Datensatz springen.

Mit dem +1 zählen wär ersteinmal nicht all zu wichtig!

Viele Grüße!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: SQL - Suchfunktion einbauen

  Alt 10. Aug 2007, 13:59
Hallo,

die Suchfunktion kannst du eigentlich analog zum Access-Formular programmieren. Irgendwo wirst du eine Query absetzen wollen, bei der du den Suchbegriff als Parameter vorsehen solltest. Wenn sich dein SELECT-Statement abgesehen vom Suchbegriff nie ändert, dann kannst due es gleich im Object Inspector eintragen:

SELECT * FROM tabelle WHERE schlagwort = :schlagwort Eventuell hast du in deiner Access-Lösung bereits über eine unscharfe Suche - LIKE bzw UPPER() - nachgedacht.

Das Ergebnis zeigst du in einer Box? Dann hast du nur eine Spalte im Result-Set? Einen mehrspaltigen Result-Set könntest du in einem DBGrid anzeigen. Dieses Grid hat ScrollBars und die Positionierung auf einen bestimmten Datensatz wäre kein Problem.

Vielleicht kannst du die Rahmenbedingungen (Datenmodell, verwendete Komponenten) noch etwas genauer beschreiben? Oft werden bei der Verschlagwortung mittels Thesaurus M:N Beziehungen zu einem Schlagwort-Katalog aufgebaut oder bei freier Verschlagwortung eine 1:N Beziehung. Oder es wird gar nicht normalisiert und die Schlagworte stehen in einem TEXT-Feld in der Form *Schlagwort1*Schlagwort2*.

Freundliche Grüße
  Mit Zitat antworten Zitat
geLLi

Registriert seit: 10. Aug 2007
4 Beiträge
 
#5

Re: SQL - Suchfunktion einbauen

  Alt 13. Aug 2007, 08:42
Hallo,

super, vielen Dank!


hat geklappt!

Viele Grüße,
geLLi
  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 08:38 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