Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Delphi 2006 TIBQuery i TIBTable - ispravka upisa

[es] :: Pascal / Delphi / Kylix :: Delphi 2006 TIBQuery i TIBTable - ispravka upisa

[ Pregleda: 2101 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Vladimir Culum
SR

Član broj: 68153
Poruke: 7
*.111.eunet.yu.



Profil

icon Delphi 2006 TIBQuery i TIBTable - ispravka upisa13.07.2006. u 11:24 - pre 216 meseci
Imam dva problema. Koristim Delphi 2006 i FireBird server sa IB-om.

1. Pokusavam da napravim malu bazu (npr. imenik). Napravio sam formu na kojoj mi je DBGrid, koji je vezan za TIBQuery. Kada hocu da vrsim novi upis, trebao bi da pokrenem generator iz baze da bi mi polje (ID_K) bilo autoincreament i da dodeli novi broj korisniku (npr. da se vezuje uz BeforePost). Polje u tabeli je definisano kao integer. Kako?

2. Kada vrsim novi upis, otvaram novu formu na kojoj su mi polja koja su vezana za tabelu. Pre otvaranja ove forme treba da se pozicioniram na rekord koji je obelezen u DBGridu, koji je vezan za TIBQuery da bi radio ispravku tacnog upisa, a ne da mi izbacuje stalno prvi. U delphiju 6 sam to radio po sledecem principu:

Table1.FindKey ([Query['ID_K']]);
Table1.Edit;

U delphiju 2006 FindKey nije definisan za IB tabele.

Kako ovo da resim?

Unapred se zahvaljujem na pomoci!
 
Odgovor na temu

badam

Član broj: 78553
Poruke: 97
62.108.117.*



+2 Profil

icon Re: Delphi 2006 TIBQuery i TIBTable - ispravka upisa13.07.2006. u 12:33 - pre 216 meseci
1.
a) Ako vec pravis generator, mozes da napravis i trigger:

Code:

Create generator TABELA_GEN;

set term ^;

Create trigger TRIG_TABELA for TABELA
before insert AS BEGIN
        NEW.ID_K = GEN_ID(TABELA_GEN, 1);
    END
^


b) Mozes da napravis stored procedure (ili sf) koja ce da unosi novi record u bazu (prvo da proverei koja je najveca vrednost za dato polje u tabeli, pa da stavi +1), a iz programa pozivas sp (sf).

2.
Code:

  Table1.Locate('ID_K', IBQuery1ID_K.Value,[])
 
Odgovor na temu

Vladimir Culum
SR

Član broj: 68153
Poruke: 7
*.218.eunet.yu.



Profil

icon Re: Delphi 2006 TIBQuery i TIBTable - ispravka upisa13.07.2006. u 12:53 - pre 216 meseci
Bio sam pokusao da napravim query koji trazi najvecu vrednost ID_K u tabeli, pa je uvecava za jedan i dodaje novom upisu, ali mi je pravilo dosta problema (stalno mi je izbacivao isti broj...)
 
Odgovor na temu

badam

Član broj: 78553
Poruke: 97
62.108.117.*



+2 Profil

icon Re: Delphi 2006 TIBQuery i TIBTable - ispravka upisa13.07.2006. u 13:03 - pre 216 meseci
Evo koda za 1b
Code:

CREATE PROCEDURE TABELAINSERT (IME Char(30), TELEFON(20))

AS
DECLARE VARIABLE i INTEGER;
BEGIN
   I = SELECT MAX(ID_K) FROM TABELA;
   INSERT INTO TABELA(ID_K, IME, TELEFON) VALUES (I, :IME, :TELEFON);
   SUSPEND;
END
^


Napomena: Nisam trenutno kod kuce, pa ne mogu da proverim kod, a fb, ib nisam koristio par godina, pa nisam ispravan da je tacan. Ako neko zna da nije, neka ispravi.

Pozdrav.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Delphi 2006 TIBQuery i TIBTable - ispravka upisa

[ Pregleda: 2101 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.