Article View: pl.comp.lang.delphi.bazy-danych
Article #82566Re: TIBCQuery Insert/Post nie zważa na triggera autoinkremantacji
From: Tomek D
Date: Thu, 20 Aug 2015 10:16
Date: Thu, 20 Aug 2015 10:16
30 lines
2267 bytes
2267 bytes
W dniu 2015-08-20 o 11:53, Borneq pisze:
> Najpierw robiłem w następujący sposób:
> queryInsert:=TIBCQuery.Create(self); queryInsert.SQL.Text:='insert
> into books (title) values (:title);';
> queryInsert.ParamByName('title').AsString:=edTitle.Text;
> queryInsert.Execute; queryInsert.Free;
>
> ale aby zobaczyć id_books nowo wstawionego musiałem odczytywać
> wartość generatora: select gen_id(gen_books_id, 0) from
> rdb$database;
>
> Teraz robię w ten sposób, że mam na formie IBCQuery1 podczepione do
> grida z zapytaniem "select ID_BOOKS,TITLE from BOOKS" To samo query
> używam jednak za pomocą Insert: IBCQuery1.Insert;
> IBCQuery1.FieldByName('title').AsString := edTitle.Text;
> IBCQuery1.Post; aby odczytywać bezpośrednio id_books :=
> IBCQuery1.FieldByName('id_books').AsInteger;
>
> Jednak jest błąd w IBCQuery1.Post polegający na tym, że id_books jest
> puste, choć w bazie ma triggera autoinkrementacji. Prawdopodobnie
> jeszcze przed odwołaniem do bazy programowo jest sprawdzane (?), w
> każdym razie Insert/Post nie zważa na triggera
A skąd ma znać to pole, skoro nadawane jest po stronie bazy?
Możliwości jest kilka:
- pobrać wartość ID ręcznie i podać jego wartość w insert
- skorzystać ze składni insert into table1 (f1) values (:f1) returning
(id) into :id
Tomek D.
Technical Details
Message-ID:
<mr49el$ugh$1@node1.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<mr481t$1q8$1@node2.news.atman.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Tomek D <bez@dresu.invalid> Newsgroups: pl.comp.lang.delphi.bazy-danych Subject: Re: TIBCQuery Insert/Post nie zważa na triggera autoinkremantacji Date: Thu, 20 Aug 2015 12:16:52 +0200 Organization: ATMAN - ATM S.A. Lines: 30 Message-ID: <mr49el$ugh$1@node1.news.atman.pl> References: <mr481t$1q8$1@node2.news.atman.pl> NNTP-Posting-Host: 82.160.134.181 Mime-Version: 1.0 X-Trace: node1.news.atman.pl 1440065813 31249 82.160.134.181 (20 Aug 2015 10:16:53 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Thu, 20 Aug 2015 10:16:53 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 In-Reply-To: <mr481t$1q8$1@node2.news.atman.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit