DBGrid, pojedyncze zapisywanie komorek

0

Witam, mam problem z pojedynczym zapisywaniem komorek w dbGridzie w bazie mySql. Malo satysfakconujaca jest opcja dgEditing w DbGrid, gdyz zapisuje ona komorki w wierszu dopiero gdy user Przejdzie do innego wiersza
(jesli nie przejdzie dane zostane w edytowanym wierszu utracone). Probowalem Uzyc procedury Post, ale wyskakuje mi przy tym blad:

"dataset not in edit or insert mode"

Reasumujac, czy wie ktos moze jak sprawic aby dane z komorki automatycznie zapisywaly sie w bazie danych zaraz po edycji komorki.

Lub czy wie ktos moze jak powinnien wygladac kodzik podpiety do buttona, ktory zapisuje wszystkie dane z dbgrida do bazy danych ?

0
dRum napisał(a)

Probowalem Uzyc procedury Post, ale wyskakuje mi przy tym blad:
"dataset not in edit or insert mode"

bo najpierw trzeba go ustawić w ten tryb (jak zaczynasz edytować lub dodawać to przestawia się automatycznie)

Reasumujac, czy wie ktos moze jak sprawic aby dane z komorki automatycznie zapisywaly sie w bazie danych zaraz po edycji komorki.

a co to znaczy "zaraz po edycji komórki"?

Lub czy wie ktos moze jak powinnien wygladac kodzik podpiety do buttona, ktory zapisuje wszystkie dane z dbgrida do bazy danych ?

if ([dsEdit] in DataSet.State) or ([dsInsert] in DataSet.State) then
DataSet.Post;

0
Misiekd napisał(a)
dRum napisał(a)

Probowalem Uzyc procedury Post, ale wyskakuje mi przy tym blad:
"dataset not in edit or insert mode"

bo najpierw trzeba go ustawić w ten tryb (jak zaczynasz edytować lub dodawać to przestawia się automatycznie)

Ok, teraz juz wiem jak :)

Misiekd napisał(a)
dRum napisał(a)

Reasumujac, czy wie ktos moze jak sprawic aby dane z komorki automatycznie zapisywaly sie w bazie danych zaraz po edycji komorki.

a co to znaczy "zaraz po edycji komórki"?

Chodzilo mi o to, ze po przejsciu do innej komorki, poprzednia zostaje zapisana.
Rozwiazalem ten problem za pomoca zdazenia OnColExit i twojego kodziku

Misiekd napisał(a)
dRum napisał(a)

Lub czy wie ktos moze jak powinnien wygladac kodzik podpiety do buttona, ktory zapisuje wszystkie dane z dbgrida do bazy danych ?

if ([dsEdit] in DataSet.State) or ([dsInsert] in DataSet.State) then
DataSet.Post;

Mala korekta:


if (DataSet.State in [dsEdit]) or (DataSet.State in [dsInsert]) then
  DataSet.Post;

i wszystko pieknie dziala, dzieki Misiekd jak zwykle okazales sie pomocny, pozdrawiam

0
dRum napisał(a)

Mala korekta:

if (DataSet.State in [dsEdit]) or (DataSet.State in [dsInsert]) then
DataSet.Post;


to w takim razie poprawniej będzie 

```delphi
 if DataSet.State in [dsEdit, dsInsert] then
  DataSet.Post;

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0