Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 5.649 pregleda

Najnovija ↓

Pretraga i sumiranje 11.03.2002. u 09:48 · pre 300 meseci #1
Postovanje,

imam jednu bazu podataka koja izgleda ovako npr:

RB | Artikal | S_artikla | Kol | Cena |
========================

e sada dodje mi kupac i npr. kupi mi artikal sa sifrom 342
sa kolicinom od 20 komada, a ja na formi imam jedan edit za sifru i jedan za
kolicinu koju kupac hoce. naravno i dugme na kom treba da uradim sledece:

da kada unesem sifru artikla (ako postoji) da mi stavi pokazivac na njega i kada unesem kolicinu recimo 20 da on automatski oduzme tih dvadeset od kolicine koja je na stanju.

Valjda ste me razumeli.

Hvala!
Re: Pretraga i sumiranje 11.03.2002. u 16:39 · pre 300 meseci #2
Koliko sam razumeo, ovo bi trebalo da bude resenje tvog problema:)

Prvo: postavi TQuery na formu i povezi je za bazu koja ti treba, postavi dve TEdit kontrole i jedan TButton

Drugo: Na onClick event za Button1 ide ovaj kod
Code:

try
with Query1 do
begin
close;
sql.clear;
sql.add('UPDATE artikl_tabela SET kol=kol-'+Edit2.text+' WHERE sifra='+Edit1.text);
execSQL;
end;
except
MessageDlg('Update nije uspeo, sifra ne postoji ili kolicina nije validna',mterror,[mbok],0);
end;


samo trebas startovati program u Edit1 uneti sifru a u Edit2 kolicinu koju trebas oduzeti iz prave kolicine u tabelu. I naravno samo click button1 :)

Pozdrav
Potpis
People who think they know everything tend to irritate those of us who do.
Re: Pretraga i sumiranje 11.03.2002. u 21:40 · pre 300 meseci #4
Postovanje,

nece da radi!

ne znam jel tamo kod UPDATE treba da stavim ime baze ili sta?

mozda zato nece.

Hvala
Re: Pretraga i sumiranje 12.03.2002. u 01:03 · pre 300 meseci #5
Citat:
Riste Pejov:
Code:

try
with Query1 do
begin
close;
sql.clear;
sql.add('UPDATE artikl_tabela SET kol=kol-'+Edit2.text+' WHERE sifra='+Edit1.text);
execSQL;
end;
except
MessageDlg('Update nije uspeo, sifra ne postoji ili kolicina nije validna',mterror,[mbok],0);
end;


artikl_tabela = ime tvoje tabele koje hoces da update !!!
kol = polje koje hoces da update-ujes !!!
sifra = primary key u tabeli koji sluzi identifikovati jedan jedinstveni record !

nadam se da sam malo razjasnio
Potpis
People who think they know everything tend to irritate those of us who do.
Re: Pretraga i sumiranje 12.03.2002. u 10:40 · pre 300 meseci #6
Pazi moja tabela izgleda ovako:

RB || Naziv_a || Kol || Cena || Sifra

e sada meni treba da vrsi pretragu po SIFRI a ne po RB

sada onaj code radi ali kada unesem neki broj koji ne postoji on nista ne prijavi
znaci po sifri mi treba ne po RB

Hvala
Re: Pretraga i sumiranje 12.03.2002. u 11:03 · pre 300 meseci #7
Probaj sa ovim kodom :

Code:

With Query1 do
begin
close;
sql.clear;
sql.add('UPDATE artikl_tabela SET kol=kol- :k WHERE sifra= :s');
Params[0].Name := 'k';
Params[0].Value := edit1.text; // u edit1 cuvaj kolicinu
Params[1].Name := 's';
Params[1].Value := edit2.text; // u edit2 cuvaj sifru artikla
ExecSQL; 
End;


Ti sam proveri pre pozivanja ovog koda da li su u ispravnom obliku uneti parametri u edit1 i edit2. Gore je Riste pogresio u koriscenju apostrofa ('). A da se to ne bi dogadjalo koriste se najcesce parametrizovani upiti.
Ne bi bilo lose da se snabdes nekom od knjiga o SQL-u (bilo u elektronskom ili papirnom izdanju). Toliko od mene.
Potpis
Sve sto je besmislenije, utoliko je bolje.
Re: Pretraga i sumiranje 12.03.2002. u 14:58 · pre 299 meseci #8
Citat:
Sole_boy:
Pazi moja tabela izgleda ovako:

RB || Naziv_a || Kol || Cena || Sifra

e sada meni treba da vrsi pretragu po SIFRI a ne po RB

sada onaj code radi ali kada unesem neki broj koji ne postoji on nista ne prijavi
znaci po sifri mi treba ne po RB

Hvala

Jedan savet: koristi sifru kao primary key, a ne redni broj. Ili u najmanju ruku indexiraj sifru

Ukoliko hoces da proveris dali sifra postoji uradi prvo jedan ovakav upit:
Code:

with query1 do
begin
close;
sql.clear;
sql.add('SELECT * FROM artikl_tabela WHERE sifra='+edit1.text);
active:=true;
if not(Query1.recordcount>0) then
 begin
 messageDlg('sifra ne postoji',mterror,[mbok],0);
  exit;
 end;
end;

overflow: moj query nema nikakve greske :)
a kad smo vec kod koriscenje parametrizovanih upita sve je stvar navike,
ja sam naviko da pisem upite u takvom stilu zato sto mi je kod laksi za razumevanje.
Potpis
People who think they know everything tend to irritate those of us who do.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme