AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Autovervollständigung.
Thema durchsuchen
Ansicht
Themen-Optionen

Autovervollständigung.

Ein Thema von thomasvonmuenster1 · begonnen am 21. Apr 2004 · letzter Beitrag vom 21. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
thomasvonmuenster1

Registriert seit: 19. Mär 2004
132 Beiträge
 
Delphi 7 Enterprise
 
#1

Autovervollständigung.

  Alt 21. Apr 2004, 11:56
Hallo zusammen!

Ich gebe ein String in ein Edit ein.
Vergleiche diese Eingabe Edit.Text mit meinen Einträgen in der DB.

Delphi-Quellcode:
timer4.Enabled:=false;
IBQuery4.SQL.Text:='select titel,datei from tabelle1 where memofeld like ''%'+edit1.Text+'%''';
IBQuery4.Open;
Wenn der String eindeutig ist soll er den ergänzen.
Was könnte ich den Probieren?
Habe leiden keinen Plan wie ich daran gehen soll.
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#2

Re: Autovervollständigung.

  Alt 21. Apr 2004, 12:52
Wenn ich das richtig sehe arbeitest Du mit Interbase. Dann schreibe eine StoredProc die nach ähnlichen Wortlaut sucht. Und schickt das Ergebnis in eine ComboBox. In das OnChange-Ereignis schreibts Du dann die SelectAbfrage.

Code:
Select Feld From DB WHERE Feld = :CB.Text
Ich habe das zwar jetzt nicht ausprobiert aber so würde ich das erstmal versuchen.
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#3

Re: Autovervollständigung.

  Alt 21. Apr 2004, 12:55
Also, ich weiß jetzt nicht genau, ob ich dich richtig verstanden hab. Aber wenn du wissen willst, ob der String im "memofeld" ist, könntest du es doch z.B. so machen
Delphi-Quellcode:
Query1.active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('select titel,datei from tabelle1 where memofeld like %'+edit1.Text+'%');
Query1.ExecSQL;
Query1.active:=true;

if Query1.RecordCount<>1
then begin
Query2.SQL.Clear;
Query2.SQL.Add(insert into tabelle1 values (titel, datei, memofeld) ('Beispiel','datei1.txt',+edit1.text));
Query2.ExecSQL;
end else if Query1.RecordCount=1
then begin
Application.MessageBox('Der String existiert bereits in der Datei!','Datensatz vorhanden', MB_OK + MB_ICONINFORMATION);
end;
Funktionalität hab ich jetzt nicht getestet. Aber so könntest du z.B. abfragen ob der String aus deinem Edit in dem Text in deiner Tabelle ist. Über die abfrage des Recordcounts kannst du dann je nach belieben weitere Aufgaben ausführen. - So wie im oberen Code: wenn das Recordcount 1 ergibt, ist der String enthalten, andernfalls soll er es einfügen. Ist vielleicht nicht die beste Lösung, aber ich hoffe es reicht erstmal.

Gruß,
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
thomasvonmuenster1

Registriert seit: 19. Mär 2004
132 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Autovervollständigung.

  Alt 21. Apr 2004, 13:12
IBStoredProc1.SQLType:='suchbegriffe from tabelle1 where suchbegriffe like ''%'+DBComboBox1.Text+'%'''; Da sagt er mir Inkompatieble Typen!
Woran liegt das?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Autovervollständigung.

  Alt 21. Apr 2004, 13:23
Akut hats fast richtig gemacht. Aber StoredProc ist überflüssig und mit den '' hat er sich vertan. Das hier ist jetzt getestet :

DataSet1.SelectSQL.Text := 'SELECT NR,BEZ FROM ART WHERE UPPER (BEZ) LIKE UPPER (''%'+Edit1.Text+'%'') ORDER BY NR'; Das Upper würde ich gleich mitschleppen. Und beachte die ''
Gruß
Hansa
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#6

Re: Autovervollständigung.

  Alt 21. Apr 2004, 13:24
Zitat von thomasvonmuenster1:
IBStoredProc1.SQLType:='
Bist du dir mit SQLType sicher?? Gibts da nicht auch nur "SQL"? Oder versuchs mit
IBStoredProc1.ExecProc;
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
thomasvonmuenster1

Registriert seit: 19. Mär 2004
132 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Autovervollständigung.

  Alt 21. Apr 2004, 13:31
Habe es auf meine Daten Abgewandelt.
Man sieht nichts!Kein Ergebnis.

Delphi-Quellcode:
procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
IBQuery3.SQL.Text := 'SELECT suchbegriffe from tabelle1 WHERE UPPER (suchbegriffe) LIKE UPPER (''%'+Edit2.Text+'%'')';
end;
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Autovervollständigung.

  Alt 21. Apr 2004, 13:40
Mann o Mann. Hier ist der ganze Source :

Delphi-Quellcode:
  EingDM.ArtDS.Close;
  EingDM.ArtDS.SelectSQL.Text := 'SELECT NR,BEZ FROM ART WHERE UPPER (BEZ) LIKE UPPER (''%'+Edit1.Text+'%'') ORDER BY NR';
  EingDM.ArtDS.Open;
EingDM ist ein Datenmodul. Kann man auch weg lassen. ArtDS ist ein DataSet. Dann habe ich noch ein DBGrid samt DataSource, um zu sehen, was passiert. Und der Dreizeiler steht im OnkeyPress eines Edits. 8) Allerdings ist mir noch aufgefallen, daß der zuletzt eingegebene Buchstabe ignoriert wird. Wieso ? Beim ersten Versuch habe ich allerdings auch nichts gesehen, weil ich dank C+P zweimal close drin hatte.
Gruß
Hansa
  Mit Zitat antworten Zitat
thomasvonmuenster1

Registriert seit: 19. Mär 2004
132 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Autovervollständigung.

  Alt 21. Apr 2004, 13:49
Delphi-Quellcode:
procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
timer3.Enabled:=false;
IBQuery3.SQL.Text := 'SELECT suchbegriffe from tabelle1 WHERE UPPER (suchbegriffe) LIKE UPPER (''%'+Edit2.Text+'%'')';
IBQuery3.Open;
end;
Ich sitze auf der Leitung!
Warum sehe ich nichts in meiner ComboBox?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Autovervollständigung.

  Alt 21. Apr 2004, 13:55
Habe jetzt noch eine DBcomboBox auf der Form. Da steht immer der Wert vom aktiven Datensatz drin. Wenn ich sie aufklappe, steht auch nichts drin. Kann aber nicht viel sein. Leider jetzt keine Zeit mehr.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:47 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