DBGrid Combobox [gelöst]

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
VB_Lazarus
Beiträge: 90
Registriert: Do 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10/11 32/64bit, L 2.2.0 32bit, FPC 3.2.2 32bit
CPU-Target: 32Bit

DBGrid Combobox [gelöst]

Beitrag von VB_Lazarus »

Hallo,

ich habe ein DBGrid.
Ich wollte für bestimmte Felder eine Combobox als Auswahl beim Ändern oder Neuanlagen eines Datensatzes verwenden.
Dies funktioniert soweit gut, bis ich die Daten zurückschreiben möchte in die Datenbank.
Er schreibt die Werte auch brav in das DBGrid.
Ich verwende folgendes, damit die Daten von der Combobox in das DBGrid geschrieben werden:

DBGrid.SelectedField.NewValue:=Combobox.Text;

Beim Aktualisieren des Datensatzes, wird nur ein Wert der letzte geänderte Wert aktualisiert.
Alle andere gäenderten Werte werden nicht mit übernommen.
Hat jemand schon mal dieses Versucht?
Muss ich irgendwas machen, bevor ich die Daten per SQLQuery.Post, und ApplyUpdates aktualisiere?

Danke.

Gruß
Zuletzt geändert von VB_Lazarus am Do 26. Feb 2015, 05:26, insgesamt 1-mal geändert.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: DBGrid Combobox

Beitrag von mse »

Probiere mal

Code: Alles auswählen

 
 DBGrid.SelectedField.asstring:= Combobox.Text;
oder
 DBGrid.SelectedField.value:= Combobox.Text;
 

TField.NewValue hat AFAIK eine Spezialfunktion.

VB_Lazarus
Beiträge: 90
Registriert: Do 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10/11 32/64bit, L 2.2.0 32bit, FPC 3.2.2 32bit
CPU-Target: 32Bit

Re: DBGrid Combobox

Beitrag von VB_Lazarus »

Danke, für die schnelle Antwort.

2. Variante habe ich schon probiert.
Es erscheint eine Fehlermeldung, dass die Query nicht im Edit-Modus ist.
Habe auch schon versucht den Edit-Modus vor dem Aufruf zu plazieren.
Hat leider nicht funktioniert.
Die 1. Variante müsste ich Heute abend mal ausprobieren.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: DBGrid Combobox

Beitrag von mse »

VB_Lazarus hat geschrieben:Danke, für die schnelle Antwort.

2. Variante habe ich schon probiert.
Es erscheint eine Fehlermeldung, dass die Query nicht im Edit-Modus ist.
Habe auch schon versucht den Edit-Modus vor dem Aufruf zu plazieren.
Hat leider nicht funktioniert.

Sollte aber.
Die 1. Variante müsste ich Heute abend mal ausprobieren.

Die braucht ebenfalls den edit-Modus.

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: DBGrid Combobox

Beitrag von MmVisual »

Code: Alles auswählen

IF DBGrid.Datasource.Dataset.IsEmpty Then
  DBGrid.Datasource.Dataset.Append
Else Not(DBGrid.Datasource.Dataset.State In [dsEdit, dsInsert]) Then
  DBGrid.Datasource.Dataset.Edit;
DBGrid.SelectedField.asstring:= Combobox.Text;
EleLa - Elektronik Lagerverwaltung - www.elela.de

VB_Lazarus
Beiträge: 90
Registriert: Do 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10/11 32/64bit, L 2.2.0 32bit, FPC 3.2.2 32bit
CPU-Target: 32Bit

Re: DBGrid Combobox [gelöst]

Beitrag von VB_Lazarus »

Danke, für die Lösungsvorschläge.

MmVisual, deine Variante hat die Lösung für mein Problem gebracht.

Antworten