AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit Change und .Text
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Change und .Text

Offene Frage von "Jack23"
Ein Thema von Jack23 · begonnen am 20. Okt 2007 · letzter Beitrag vom 20. Okt 2007
Antwort Antwort
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#1

Problem mit Change und .Text

  Alt 20. Okt 2007, 18:45
Datenbank: Access • Zugriff über: ADO
Also

ich habe es jetzt so:

ADOQuery.Sql.Add('SELECT Test FROM abc WHERE id LIKE ComboBox1.Text'); Das ist im onChange einer ComboBox.

Und das soll bedeuten es wird Test abgefragt wenn ID = ComBoBox1.Text.

Aber es geht nicht es kommt die Meldung ComboBox1 hat keinen Standart Wert. Woran liegt das?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit Change und .Text

  Alt 20. Okt 2007, 18:49
Hai Jack23,

zum einen übergibst Du nicht den Inhalt der ComboBox sondern Du hast den Text 'ComboBox1.Text' in der Abfrage.
Zum anderen wirst Du, selbst wenn Du das korigierst Probleme durch das Sql.Add bekommen. Denn dadurch wird das SQL-Statment deines ADOQuerys ja ständig erweitert.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Problem mit Change und .Text

  Alt 20. Okt 2007, 18:50
1. Standard
2. Willst du nicht eher mal den Inhalt von ComboBox1.Text in den Query einbauen anstatt nur im String ComboBox1.Text zu schreiben?
3. Die Fehlermeldung: er interpretiert das ComboBox1.Text als Tabelle/Result Combobox1 und dort Feld Text.
4. Nutze lieber Parameter, dann sparst du dir auch den kompletten Ärger um das escapen der Werte.
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#4

Re: Problem mit Change und .Text

  Alt 20. Okt 2007, 18:56
Und wie kann ich das nun vernünftig machen?

Oder wäre es besser das so zu machen?

  if 'ComboBox1.ItemIndex' = 'Wertthen So müsste ich aber alles in den Code schreiben.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Problem mit Change und .Text

  Alt 20. Okt 2007, 19:00
ADOQuery.Sql.Add('SELECT Test FROM abc WHERE id LIKE '+#39+'%'+ComboBox1.Text'+#39+'%'); oder besser
Delphi-Quellcode:
ADOQuery.Sql.Add('SELECT Test FROM abc WHERE id LIKE :cbtext');
...
AdoQuery.Params.ParamByName('cbtext').asString := '%'+ComboBox1.Text+'%';
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Problem mit Change und .Text

  Alt 20. Okt 2007, 19:03
Zitat von Jack23:
Und wie kann ich das nun vernünftig machen?...
Hai Jack23,

ich kann Dir leider nur einen Tip geben. Lerne als erstes die Grundlagen von Delphi. Eine Lösung zu dieser Frage steht bestimmt schon in zwei oder drei Threads von Dir.

Es nutzt Dir nichts wenn Du anfängst ein Programm zu schreiben und dann bei jedem Problem zu fragen wie man es lösen kann. Wenn Du dann auch noch den Code der Dir gezeigt wurde einfach in dein Programm einfügst ohne ihn verstanden zu haben wirst Du nie spass am Programmieren haben.

Bitte verstehe mich jetzt nicht falsch. Aber ich habe mal schnell die Threads von Dir durchgesehen und stelle dort eine "gewisse Grundhaltung" fest die zu den oben genannten Problemen führt.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#7

Re: Problem mit Change und .Text

  Alt 20. Okt 2007, 19:37
Ok Sharky irgend wo hast du vielleicht recht. Auch wenn in den anderen Themen die Lösung drin stand. Sie hat mir aber nicht richtig gefallen. Ich habe das ganze noch mal ein wenig überdacht. Mir die Grundlagen angeschaut. Und daraufhin bin ich zu der Überlegung gekommen man könnte doch in ComboBox1.Items.AddObject "zwei rein" machen. Habe ein wenig rumprobiert und da ist das raus gekommen:

 ComboBox1.Items.AddObject(ADOQuery.FieldbyName('Test1').AsString,TObject(ADOQuery.FieldByName('Test2').AsString)); Dann wird in der ComboBox Test1 als Name zugewiesen und Test2 als "Wert". Klappt auch. Kommt keine Fehlermeldung.

Nur mein Problem ist wie greife ich auf diese Daten zu?

Oder besser gesagt ich müsste ja das TObject wieder in einen String umwandeln oder? Oder geht das garnicht?
  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 02:25 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