Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi zeile immer überschrieben (https://www.delphipraxis.net/40989-zeile-immer-ueberschrieben.html)

herrentor 24. Feb 2005 07:57

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.

Albi 24. Feb 2005 08:25

Re: zeile immer überschrieben
 
Hallo,

ich versteh zwar nicht ganz was du meinst aber einen neuen Eintrag in eine Combobox bekommst Du mit

Code:
CBox1.items.add('Eintrag1');
usw..

Zitat:

Zitat von herrentor
und, beim start meines delphi programmes werden in den comboboxen anscheinend immer die datenbankdaten eingelesen.

Bist Du dir sicher das Du eine ComboBox und nicht eine DBComboBox (siehe hier) verwendest. Denn eine Combobox macht nichts, wenn Du es ihr nicht sagst.

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..

Jerry 24. Feb 2005 08:26

Re: zeile immer überschrieben
 
Moing

Hilft Dir diese Zeile weiter?

ComboBox1.Items.Add('text der in die combobox muss');

herrentor 24. Feb 2005 08:35

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.

Albi 24. Feb 2005 08:46

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:
With Table1 Do
Begin
  Edit;
  Append;
end;
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.

herrentor 24. Feb 2005 09:11

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.

Albi 24. Feb 2005 09:44

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?

herrentor 24. Feb 2005 10:04

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.

Jasocul 24. Feb 2005 10:17

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.

herrentor 24. Feb 2005 10:30

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 20:32 Uhr.
Seite 1 von 2  1 2      

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