![]() |
Datenbank: DB • Zugriff über: BDE
zeile immer überschrieben
morgen,
ich bin noch ein ziemlicher anfänger im bereich datenbanken, deshalb eine für euch hoffentlich einfache frage: ich speicher die auswahl meiner comboboxen in einer datenbank bei einem klick auf speichern, dass klappt auch, aber wenn ich andere werte eingebe, werden die ersten überschrieben. wie bzw. wo stelle ich ein, dass in die nächste zeile geschrieben werden soll? und, beim start meines delphi programmes werden in den comboboxen anscheinend immer die datenbankdaten eingelesen. |
Re: zeile immer überschrieben
Hallo,
ich versteh zwar nicht ganz was du meinst aber einen neuen Eintrag in eine Combobox bekommst Du mit
Code:
usw..
CBox1.items.add('Eintrag1');
Zitat:
![]() Wenn Du die DBCBox verwendest, must der DB sagen, dass ein neuer DS angelegt werden soll und nicht der DBCbox, da die Box ja nur den Inhalt des DB-Feldes wiedergibt. Zum anderen, ändere mal bitte deine Angaben im Titel. Du verwendest eine DB, dass ist aber nicht die BDE und der Zugriff erfolgt nicht über Delphi sondern über die BDE, ODBC usw.. |
Re: zeile immer überschrieben
Moing
Hilft Dir diese Zeile weiter? ComboBox1.Items.Add('text der in die combobox muss'); |
Re: zeile immer überschrieben
dann hab ich mich anscheindend schlecht ausgedrückt. also ich verwende neuerdings dbcomboboxen, das programm hab ich aber für comboboxen geschrieben. als ich die datenbank hergestellte, habe ich einfach die comboboxen gelöscht und dafür dbcomboboxen eingesetzt. das ding ist jetzt nur, dass nur eine zeile in der db gespeichert wird und das diese werte beim start in die dbcomboboxen übernommen werden.
|
Re: zeile immer überschrieben
Hallo,
das ist doch klar, die DBCBox ist doch direkt mit der DB verbunden. D.h. alle Änderung die Du in der Box tätigt werden in der DB gespeichert. Willst Du einen neuen DS anlegen, dann musst du mit "append" in der DB einen Datensatz anlegen.
Code:
Ich arbeite zwar gar nicht mit DBCbox aber Du hast im OI die Datasource sowie das Datafield mit dem entsprechenden Feld deiner DB verbunden. Wenn Du nun deine Anwendung startest sollte eigentlich nur ein Datensatz in der DBCBox eingetragen sein.
With Table1 Do
Begin Edit; Append; end; |
Re: zeile immer überschrieben
klappt irgendwie nicht mit append. ich möchte aber gerne, dass kein datensatz eingetragen ist. wenn ich nämlich was anderes anklicke ist wieder die auswahl aus'm datensatz drin.
|
Re: zeile immer überschrieben
:gruebel: Hallo,
nehme dir mal ein DBGrid und verbinde es mit deiner DB, dann wirst Du sehen, dass unten ein neuer leerer DS angelegt wird. Ich bin mir da nicht ganz sicher aber ich denke das eine DBCBox nicht vorrangig dazu gedacht ist Daten anzulegen, sondern vielmehr um diese anzuzeigen. [quote"herrentor"]das ding ist jetzt nur, dass nur eine zeile in der db gespeichert wird und das diese werte beim start in die dbcomboboxen übernommen werden. [/quote] Das ist ist der Sinn der DBCBox, Daten aus der DB anzuzeigen. Was willst du den genau machen, einmal heißt es, dass die Daten beim anlegen immer wieder überschrieben werden. Beim nächtsen Post sollen die Daten nicht in die DBCBox geladen werden. Also was genau willst Du erreichen? :gruebel: Was ich bisher verstanden habe. Du hast ein DBCBox was Daten aus der DB anzeigt. Dann willst Du in die DBCBox etwas eintragen und es soll als neuer DS in der DB Gespeichert werden. Stimmt das soweit? |
Re: zeile immer überschrieben
mein ziel ist es, daten aus den comboboxen und editfeldern in einer datenbank zu speichern, bei der ich dann die eingaben abgleichen kann. beispielsweise das keine zeile doppelt geschrieben wird. mehr will ich nicht. ich will auch nicht, dass die datensätze in meinem programm angezeigt werden.
|
Re: zeile immer überschrieben
Das Beispiel von Albi ist nicht ganz korrekt. Das"Edit" musst du weg lassen.
Außerdem gibt es Probleme mit dem Append, wenn du direkt danach den Focus wechselst. Dann geht manchmal die Table ausdem Append-Modus wieder raus. Also erst den Focus auf das Element setzen (dbcombobox.SetFocus) und dann das Append machen. Es gibt noch andere Lösungswege, aber im Moment sollte das reichen. |
Re: zeile immer überschrieben
ich verstehe gerade nicht, warum man den focus auf die dbcombobox soll? bisher hab ich nur bei der prozedur onclick tabel1.post reingeschrieben. kann man ihm nicht sagen, dass er das ende der datei suchen soll und dann schreiben?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz