DbEdit i wprowdzenie nowego wiersza

0

Witam

Wypełniam sobie DbEdity danymi z bazy i chciałbym teraz wprowadzić nowy wiersz do tabeli. Jest jakaś inna możliwość niż Query.Insert ? Może jest możliwość przejścia do pustego wiersza czy coś w tym sylu? Pozdrawiam i dzięki za podpowiedzi

0

Ten temat to chyba w Newbie powinien być. ;)

Przykład z mojego starusieńkiego programu.

begin
if edit1.Text='' then
   Application.MessageBox('Podaj dane kursanta','Kursant',mb_iconwarning)
     else begin
      table1.Append;
             table1.FieldByName('Nazwisko').AsString:=edit1.Text;
             table1.FieldByName('Imie').AsString:=edit2.Text;
     end;
end;

lub
SQL:

begin
   with ibquery1, sql do
    begin
     Close;
     Clear;
     Add('INSERT INTO Nazwa_tabeli (Pole1, Pole2, Pole3) VALUES (:P1, :P2, :P3)');
     ParamByName('P1').AsInteger:=StrToInt(Edit1.Text);
     ParamByName('P2').AsString:=Edit2.Text;
     ParamByName('P3').AsString:=Edit3.Text;
     ExecSQL;
     IBTransaction1.Commit;
    end;
end;
0
RedbaK napisał(a)

Ten temat to chyba w Newbie powinien być. ;)

Przykład z mojego starusieńkiego programu.

begin
if edit1.Text='' then
   Application.MessageBox('Podaj dane kursanta','Kursant',mb_iconwarning)
     else begin
      table1.Append;
             table1.FieldByName('Nazwisko').AsString:=edit1.Text;
             table1.FieldByName('Imie').AsString:=edit2.Text;
     end;
end;

lub
SQL:

begin
   with ibquery1, sql do
    begin
     Close;
     Clear;
     Add('INSERT INTO Nazwa_tabeli (Pole1, Pole2, Pole3) VALUES (:P1, :P2, :P3)');
     ParamByName('P1').AsInteger:=StrToInt(Edit1.Text);
     ParamByName('P2').AsString:=Edit2.Text;
     ParamByName('P3').AsString:=Edit3.Text;
     ExecSQL;
     IBTransaction1.Commit;
    end;
end;

Witam

Dzięki ale nie o to mi chodziło. Być może źle sformułowałem pytanie. Sprawa wygląda tak że mam DBEdity, a nie zwykłe Edity(chce zrobić taki formularz w którym od razu będą dane jakiegoś klienta). One są wypełniane automatyczne danymi z tabeli. No i teraz chce dodać nowy wiersz i musze wejść w tryb dodawania nowego wiersza. Nowy pusty wiersz dostane jak wykonam polecenie Query.Insert no ale szukam innej możliwości. Mógłbym zrobić taki formularz za pomocą zwyklych Editów i wypełnić je polami konkretnego wiersza z tabeli no ale wtedy tez pojawia się problem dodania nowego rekordu bo nie moge dać Edit.Text = ''; bo wyczyści teksty aktualnie zaznaczonego rekordu a to nie o to chodzi. Pozdrawiam

0

Staram sie bardzo, ale nie potrafię zrozumieć co chcesz osiagnąć.

Albo inaczej - z twojego opisu podalbym odpowiedz taka jak RedbaK, ale twierdzisz, ze nie o to chodzi.

Skoro chcesz mieć pełną kontrolę nad tym co się dzieje w edytkach, to nie rob tego na edytkach DB-Aware (typu DBEdit), tylko zrob na zwyklych (typu Edit), które będziesz wypełniał lub czyścił wtedy kiedy tobie to będzie pasowało.

Poza tym - zawsze możesz napisać swoją kontrolkę i w niej obsluzyc sposob zachowania przy dodawaniu nowego wiersza (ale to to samo co reczna obsluga istniejacych kontrolek).

Generalnie ciezko zrozumiec co rzeczywiscie chcesz osiagnac, albo ja jestem zbyt zmeczony, zeby polapac sie o co chodzi (sorry w takim przypadku)

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