AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Zquery.post funktioniert nicht nach DBCombobox.text
Thema durchsuchen
Ansicht
Themen-Optionen

Zquery.post funktioniert nicht nach DBCombobox.text

Ein Thema von Maja_99 · begonnen am 12. Mär 2010 · letzter Beitrag vom 15. Mär 2010
Antwort Antwort
Maja_99

Registriert seit: 11. Jun 2009
6 Beiträge
 
#1

Zquery.post funktioniert nicht nach DBCombobox.text

  Alt 12. Mär 2010, 17:49
Datenbank: MySQL • Version: 5 • Zugriff über: ZEOS
Hi,

ich habe ein Formular, welches DBComboboxen enthaelt. Im onChange will ich diese automatisch, je nach Ereignis aendern.
Der Text wird gesetzt, aber dann wenn ich den Text in der DB speichern will mit ZQuery1.Post, wird es nicht in der DB gespeichert.

Wenn ich ein Item aus der Combobox waehle, oder in die ComboBox schreibe, funktioniert es.
Es funktioniert nur nicht, wenn ich den Text im Code setze.


Delphi-Quellcode:
procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
   TDBComboBox.Text:='test';
end;

procedure Tforms1.Button1_Click(Sender: TObject);
begin
   ZQuery1.Post;
end;

Vielen Dank fuer Eure Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#2

Re: Zquery.post funktioniert nicht nach DBCombobox.text

  Alt 12. Mär 2010, 18:41
ist denn die ComboBox auch mit einem Datenfeld von ZQuery1 verknüpft ? Wenn ja und CachedUpdates = False ist kannst du dir das Post sparen.
Zitat:
Es funktioniert nur nicht, wenn ich den Text im Code setze.
wenn du den Text setzt wird der Text nicht zu einem Item. Und nur die Items werden "datensensitiv" behandelt. Woher soll auch die Query wissen, ob der Text ein zusätzlicher Datensatz werden soll oder ob ein Item verändert / bearbeitet wird.



Nachtrag: Ich habe es selbst noch nicht probiert. Versuche mal den Text als Item hinzuzufügen Items.Add('Text') und dann den ItemIndex auf das Item mit deinem neuen Text setzen. ItemIndex:= IndexOf('Text'). Normalerweise sollte der neue Text dann als Datensatz angehängt werden.
  Mit Zitat antworten Zitat
Maja_99

Registriert seit: 11. Jun 2009
6 Beiträge
 
#3

Re: Zquery.post funktioniert nicht nach DBCombobox.text

  Alt 12. Mär 2010, 19:24
Hi haentschman,

vielen Dank fuer Deine Antwort.

Die ComboBox ist mit der ZQuery1 verknuepft, da es ja sonst nicht funkionieren wuerde das Item nach Auswaehlen in die DB zu speichern.
Ich habe Deinen Vorschlag probiert. Es funktioniert leider auch nicht.

Ich verstehe jedoch nicht, was der Unterschied ist, wenn ich etwas in der ComboBox von Hand eintrage oder es im Code setze.
Wenn ich es von Hand eintrage wird es 'geposted'.

  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#4

Re: Zquery.post funktioniert nicht nach DBCombobox.text

  Alt 12. Mär 2010, 19:36
wird da ein vorhandenes Item geändert oder ein Datensatz angehängt ?
  Mit Zitat antworten Zitat
Maja_99

Registriert seit: 11. Jun 2009
6 Beiträge
 
#5

Re: Zquery.post funktioniert nicht nach DBCombobox.text

  Alt 12. Mär 2010, 19:58
Es wird ein Datensatz in einer Datenbanktabelle eingefuegt oder upgedated.
Beides funktioniert, wenn ich es aus der CB auswaehle oder etwas von Hand eintrage, aber nicht wenn ich's im Code mache.
Ich kann sogar sehen, nachdem ich auf Speichern klicke und bevor die Form geschlossen wird, dass der alte Eintrag oder eben kein Eintrag (wenn keiner vorhanden war), wieder in der ComboBox angezeigt wird.

Vielen Dank fuer Deine Muehe!
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#6

Re: Zquery.post funktioniert nicht nach DBCombobox.text

  Alt 13. Mär 2010, 06:49
Morgen

ich teste mir das mal bei Gelegenheit.

PS: im OnChange den Text setzen halte ich für nicht gut. Eigentlich solltest du nichts anderes als den Text in der Combobox sehen.
setze mal einen Breakpoint auf TDBComboBox.Text:='test';. Schaue dir an, wann onChange ausgelöst wird. Du wirst dich wundern wie
oft. Erkläre mal warum du im OnCange den Text setzen willst.
  Mit Zitat antworten Zitat
Maja_99

Registriert seit: 11. Jun 2009
6 Beiträge
 
#7

Re: Zquery.post funktioniert nicht nach DBCombobox.text

  Alt 15. Mär 2010, 16:19
Hi

oh sorry, das war ein Fehler von mir.

Im onChange einer anderen ComboBox, also ComboBox1 soll der Text in ComboBox2 geandert werden.

Delphi-Quellcode:
procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
   TDBComboBox2.Text:='test';
end;
Es liegt an dem ZQuery.Post. Wenn ich den Text meiner Combobox vor dem "posten" auslese und mir als ShowMessage anzeigen lasse, wird mir der derzeitige Text, der in der ComboBox eingetragen ist, angezeigt.
Nach dem "posten" enthaelt die ComboBox dann wieder den alten Text aus der Datenbank.

Vielen Dank!
  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:51 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