🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82566

Re: TIBCQuery Insert/Post nie zważa na triggera autoinkremantacji

#82566
From: Tomek D
Date: Thu, 20 Aug 2015 10:16
30 lines
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-mail
References: <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