[ medixsa @ 10.09.2008. 23:48 ] @
Pozdrav !!!!

Delphi 7

baza FireBird
UIB components itd....

Pitanje


Imam tabelu ulaz tblUlaz i tabelu knjige tblKnjige


tblUlaz ima polje "kolicina"
tblKnjige ima polje "stanje"


zelim da iz tblUlaz kolicinu dodam u tblKnjige polje "stanje"

pokusavao sam nesto ovako ali ne ide....



----> ovo je code da artikal u ulazu odgovara artiklu u knjigama
frmKnjige.tblKnjige.Close;
frmKnjige.tblKnjige.SQLSelect.Clear;
frmKnjige.tblKnjige.SQLSelect.Add('select * from Knjige where SifraK = '+frmUlaz.JvDBGrid1.Fields[3].AsString);
frmKnjige.tblKnjige.Open;

frmKnjige.tblKnjige.Edit;

-->>
frmKnjigeQ.SQL.Clear;
frmKnjigeQ.SQL.Add('update Knjige set Stanje = '+floattostr(frmUlaz.tblUlazKOLICINA.AsFloat)+'where SifraK='+frmUlaz.tblUlazSIFKNJIGE.AsString);
frmKnjigeQ.Execute;

frmKnjige.tblKnjige.Post;
frmKnjige.tblKnjige.Close;
frmKnjige.tblKnjige.Open;
end;

Hvala
[ .:Marvin:. @ 11.09.2008. 12:16 ] @
A u kom momentu zelis da se odradi taj update?

Da li je to klikom na nekom dugme, ili skrolovanjem kroz grid ili nesto trece?

Koliko ja vidim, ne treba ti dva SQL iskaza, mozes u okviru update-a da stavis join tabela Ulaz i Knjige.

Napisi tacno polja koja imas pa cu ti napisati ceo kod.

Za pocetak, sam SQL bi izgledao ovako nekako:

Update Knjige
set Stanje = Kolicina
from Knjige join Ulaz on Knjige.SifraK = Ulaz.SIFKNJIGE

To je za pocetak. Ovaj upit s100% prolazi u MS SQL, za FB treba proveriti.

Posle mozes i da dodas u where uslov sifru knjige itd. I mozes da sumiras kolicinu iz ulaza, ako treba.

Probaj pa javi
[ medixsa @ 11.09.2008. 21:56 ] @
Hvala na pokusaju da mi odgovoris,evo ti tacna polje

**************************************
tblUlaz
**************************************


REATE TABLE ULAZKNJIGE (
SIFRAULAZ "sifra" NOT NULL /* "sifra" = INTEGER */,
ISBN TXT_10 COLLATE BS_BA /* TXT_10 = VARCHAR(10) */,
SIFKNJIGE "sifra" /* "sifra" = INTEGER */,
NAZIVKNJIGE TXT_20 COLLATE BS_BA /* TXT_20 = VARCHAR(20) */,
AUTOR TXT_20 COLLATE BS_BA /* TXT_20 = VARCHAR(20) */,
IZDAVAC TXT_30 COLLATE BS_BA /* TXT_30 = VARCHAR(30) */,
KOLICINA KOLICINA /* KOLICINA = FLOAT */,
DATUMULAZ DATUM /* DATUM = DATE */,
KNJIGUPRIMIO TXT_15 COLLATE BS_BA /* TXT_15 = VARCHAR(15) */,
DATUMK DATUM /* DATUM = DATE */
);

**************************************
tblKnjige
**************************************

REATE GENERATOR GEN_KNJIGE_ID;

CREATE TABLE KNJIGE (
SIFRAK "sifra" NOT NULL /* "sifra" = INTEGER */,
ISBN TXT_10 COLLATE BS_BA /* TXT_10 = VARCHAR(10) */,
NAZIV TXT_30 COLLATE BS_BA /* TXT_30 = VARCHAR(30) */,
SIFAUTOR "sifra" /* "sifra" = INTEGER */,
AUTORNAZIV TXT_15 COLLATE BS_BA /* TXT_15 = VARCHAR(15) */,
SIFIZDAVAC "sifra" /* "sifra" = INTEGER */,
NAZIVIZDAVAC TXT_30 COLLATE BS_BA /* TXT_30 = VARCHAR(30) */,
SIFKATEG "sifra" /* "sifra" = INTEGER */,
NAZIVKATEG TXT_15 COLLATE BS_BA /* TXT_15 = VARCHAR(15) */,
SIFJEZIK "sifra" /* "sifra" = INTEGER */,
NAZIVJEZIK TXT_15 COLLATE BS_BA /* TXT_15 = VARCHAR(15) */,
STANJE KOLICINA /* KOLICINA = FLOAT */,
SLIKA SLIKA /* SLIKA = BLOB SUB_TYPE 0 SEGMENT SIZE 100 */
);


Zelim klikom na dugme recimo

Hvala jos jednom