Mam w bazie tabele "sprzet" i dwa pola "id_sprzet" i "nazwa". Do pola "id_sprzet" uzyje generatora w TIBDataSet a do pola "nazwa" chcialbym przypisac tekst z pola TDBEdit. Jak zrobic aby po kliknieciu buttona sie to wpisalo?
Pozdrawiam
Mam w bazie tabele "sprzet" i dwa pola "id_sprzet" i "nazwa". Do pola "id_sprzet" uzyje generatora w TIBDataSet a do pola "nazwa" chcialbym przypisac tekst z pola TDBEdit. Jak zrobic aby po kliknieciu buttona sie to wpisalo?
Pozdrawiam
Są przecież przykłady w Delphi\Demos.
No tak znalazlem i zrobilem cos takiego
(InsertSprzet to zmienna programu)
DataModule1.IBDSsprzet.SelectSQL.Text := 'select ' + InsertSprzet +
' from sprzet;';
I Select dziala ale ponizej insert juz nie dziala. Bo w nawiasach trzeba uzyc apostrofow tylko za nic nie umiem tego zrobic same apostrofy nic daja bo wyskakuje blad.
DataModule1.IBDSsprzet.InsertSQL.Text := 'INSERT INTO nazwa' +
'VALUES (' + InsertSprzet + ');';
Jak to rozwiazac?
Zmienna ma być w cudzysłowie użyj funkcji QuotedStr.
Wlasnie ze nie. Wlasnie sprawdzalem w konsoli Firebirda i tam jak sie uzyje cudzyslowow to wyskoczy blad, a jak apostrofow to dobrze jest.
tylko ze wdarla sie mala pomylka bo nie bylo sprzet(nazwa) na poczatku ale nadal nie dziala
DataModule1.IBDSsprzet.InsertSQL.Text := 'INSERT INTO sprzet(nazwa)' +
'VALUES (' + InsertSprzet + ');';
A spróbuj przed VALUES wstawić spację ...
No tak przegapilem blad ale i tak nie pomoglo niestety.
Jak nie ma na to odpowiedzi to moze w innym sposob to zrobic np.
w TDBEdit1 mam pewna liczbe i jest ona z tabeli pobrana i chce ja przypisac do drugiego TDBEdit2 i mam w onClick na DBNavigator .
DbEdit1.Field.Text := DBEdit2.Field.Text;
i wtedy wyskakuje blad "not in edit mode".
Czemu?
A nie lepiej używać DBNavigator i bezposredio wpisywać do bazy???
Tomasz napisał(a)
No tak znalazlem i zrobilem cos takiego
(InsertSprzet to zmienna programu)
DataModule1.IBDSsprzet.SelectSQL.Text := 'select ' + InsertSprzet + ' from sprzet;';
I Select dziala ale ponizej insert juz nie dziala. Bo w nawiasach trzeba uzyc apostrofow tylko za nic nie umiem tego zrobic same apostrofy nic daja bo wyskakuje blad.
DataModule1.IBDSsprzet.InsertSQL.Text := 'INSERT INTO nazwa' + 'VALUES (' + InsertSprzet + ');';
Jak to rozwiazac?
Tomasz napisał(a)
No tak znalazlem i zrobilem cos takiego
(InsertSprzet to zmienna programu)
DataModule1.IBDSsprzet.SelectSQL.Text := 'select ' + InsertSprzet + ' from sprzet;';
I Select dziala ale ponizej insert juz nie dziala. Bo w nawiasach trzeba uzyc apostrofow tylko za nic nie umiem tego zrobic same apostrofy nic daja bo wyskakuje blad.
DataModule1.IBDSsprzet.InsertSQL.Text := 'INSERT INTO nazwa' + 'VALUES (' + InsertSprzet + ');';
Jak to rozwiazac?
Tomasz napisał(a)
Mam w bazie tabele "sprzet" i dwa pola "id_sprzet" i "nazwa". Do pola "id_sprzet" uzyje generatora w TIBDataSet a do pola "nazwa" chcialbym przypisac tekst z pola TDBEdit. Jak zrobic aby po kliknieciu buttona sie to wpisalo?
Pozdrawiam
pole autoinc definiuje się w bazie - tworzysz generator + wyzwalacz, który wpisuje odpowiednią wartość do pola ID
zamiast IBDataSet użyj IBQuery
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('INSERT INTO sprzet (nazwa) VALUES (:nazwa)');
IBQuery1.ParamByName('nazwa').AsString := InsertSprzet;
IBQuery1.ExecSQL;
// tu jeszcze wypadało by zatwierdzić transakcję