przypisywanie tekstu z TDBEdit do bazy

0

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

0

Są przecież przykłady w Delphi\Demos.

0

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?

0

Zmienna ma być w cudzysłowie użyj funkcji QuotedStr.

0

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 + ');';
0

A spróbuj przed VALUES wstawić spację ...

0

No tak przegapilem blad ale i tak nie pomoglo niestety.

0

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?

0

A nie lepiej używać DBNavigator i bezposredio wpisywać do bazy???

0
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?

0
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?

0
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ę

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