Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Delphi vs. Access

0 views
Skip to first unread message

MirelaG

unread,
Feb 14, 2001, 9:40:53 AM2/14/01
to
Delphi program radi na Access bazi i u tablici koristi polje AutoNumber.
Zbog master/detail strukture treba mi vrijednost AutoNumber polja neposredno
nakon inserta u bazu.

Moguca rjesenja:
a) select max ...
b) posebna tablica u kojoj se nalazi zapisana sljedeca slobodna vrijednost i
odrzava je program.

Postoji li jos kakvo rjesenje za dohvat te vrijednosti?
Za Informix koristimo stored procedure koje Access, na zalost, nema.

Puno hvala i lijep pozdrav,

m.

Buch

unread,
Feb 14, 2001, 12:40:13 PM2/14/01
to
> Moguca rjesenja:
> a) select max ...
> b) posebna tablica u kojoj se nalazi zapisana sljedeca slobodna vrijednost
i
> odrzava je program.

Posebna tablica je najrobusnije rjesenje, i o srca ti ga preporucam.
U svakom slucaju brze je od select max.
Inace nije dobra ideja koristiti AutoNumber polja (pogotovo u paradoxu).

> Postoji li jos kakvo rjesenje za dohvat te vrijednosti?
> Za Informix koristimo stored procedure koje Access, na zalost, nema.

Koju verziju Informixa koristis?


Davor Pleskina

unread,
Feb 14, 2001, 3:09:41 PM2/14/01
to
"MirelaG" <mpr...@helix.hr> wrote in message
news:96e5b7$200e$1...@as121.tel.hr...

> Delphi program radi na Access bazi i u tablici koristi polje AutoNumber.
> Zbog master/detail strukture treba mi vrijednost AutoNumber polja
neposredno
> nakon inserta u bazu.

Da li to netko ne zna sto zapravo znaci kratica "vs."?
Ocito...
Ovako se zbunjuju ljudi. A ja mislio da je na pomolu novi flame...


CUSTOS

unread,
Feb 14, 2001, 6:33:19 PM2/14/01
to
> Da li to netko ne zna sto zapravo znaci kratica "vs."?
> Ocito...
> Ovako se zbunjuju ljudi. A ja mislio da je na pomolu novi flame...

I meni se cini da bi umjesto "vs." bilo bolje "&" :)))

Ispravka: ne cini mi se nego sam siguran da bi bilo bolje :)))


MirelaG

unread,
Feb 15, 2001, 2:34:04 AM2/15/01
to
Ah, znam ja sto znaci vs. Nego, nakon dugo programiranja s Informixom imam
osjecaj da se stvarno borim s Accessom. Zato vs :-))))))

m.

Mladen Kuzminski

unread,
Feb 15, 2001, 3:50:58 AM2/15/01
to
"MirelaG" <mpr...@helix.hr> wrote in message
news:96g0mq$d9i$1...@as121.tel.hr...

> Ah, znam ja sto znaci vs. Nego, nakon dugo programiranja s Informixom imam
> osjecaj da se stvarno borim s Accessom. Zato vs :-))))))
>
> m.
>
>


Probajte InterBase.
Bit ce Vam blizi od Accessa buduci da ste radili s Informixom. Osim toga IB
je open source (dakle free) i ima direktni driver i komponente za Delphi pa
stvar funkcionira puno ljepse (smooth kak bi rekli Englezi) od Accessa.
www.borland.com/interbase

BTW, IB ima stored procedures, triggere i sl.
--
Zelim Vam ugodan i uspjesan dan,
Mladen Kuzminski
BORLAND / INPRISE distribucija
KONTO d.o.o. Pozega, Varazdin


Mladen Kuzminski

unread,
Feb 15, 2001, 3:52:43 AM2/15/01
to

"MirelaG" <mpr...@helix.hr> wrote in message
news:96e5b7$200e$1...@as121.tel.hr...

A da se napravi globalna varijabla u programu?
Mislim, ako Vam treba neposredno nakon upisa u master tablicu onda je
najbrze i najjednostavnije preko globalne varijable.
Kako znati koja je slijedeca vrijednost? Najbrze indeksirati tablicu po
AutoNumber polju, ici na zadnje polje, procitati vrijednost i onda
Inc(vrijednost).

Vladimir Zderic

unread,
Feb 15, 2001, 8:24:24 AM2/15/01
to

Mladen Kuzminski <mla...@konto.hr> wrote in message
news:96g5ui$o3p$2...@sunce.iskon.hr...

>
> "MirelaG" <mpr...@helix.hr> wrote in message
> news:96e5b7$200e$1...@as121.tel.hr...
> > Delphi program radi na Access bazi i u tablici koristi polje AutoNumber.
> > Zbog master/detail strukture treba mi vrijednost AutoNumber polja
> neposredno
> > nakon inserta u bazu.
> >
> > Moguca rjesenja:
> > a) select max ...
> > b) posebna tablica u kojoj se nalazi zapisana sljedeca slobodna
vrijednost
> i
> > odrzava je program.
> >
>
> A da se napravi globalna varijabla u programu?

A kako ce ostale radne stanice pristupiti toj "globalnoj" varijabli?

> Mislim, ako Vam treba neposredno nakon upisa u master tablicu onda je
> najbrze i najjednostavnije preko globalne varijable.
> Kako znati koja je slijedeca vrijednost? Najbrze indeksirati tablicu po
> AutoNumber polju, ici na zadnje polje, procitati vrijednost i onda
> Inc(vrijednost).

Ovako sam i ja radio u ranim programerskim danima dok nisam uvidio velike
nedostatke ove metode.


Definitivno je najjednostavnije i najpouzdanije rjesenje koristenje posebne
tablice za sve brojace.
Ako ima zainteresiranih poslat cu im kompletno rjesenje (besplatno naravno).


Pozdrav.


Robert Idlbek

unread,
Feb 15, 2001, 7:20:42 AM2/15/01
to
"Mladen Kuzminski" <mla...@konto.hr> wrote in message
news:96g5ui$o3p$1...@sunce.iskon.hr...

> Probajte InterBase.
> Bit ce Vam blizi od Accessa buduci da ste radili s Informixom. Osim toga
IB
> je open source (dakle free) i ima direktni driver i komponente za Delphi
pa
> stvar funkcionira puno ljepse (smooth kak bi rekli Englezi) od Accessa.
> www.borland.com/interbase
>
> BTW, IB ima stored procedures, triggere i sl.

Nisam bas siguran da IB radi bolje sa Delphijem od Accessa.
Borlandov BDE mi se cini dosta losiji izbor od ADO-a koji dolazi sa D5-icom.
ADO podrzava sve moguce i nemoguce baze, stalno se unapredjuje (ADO.NET) za
razliku od BDE-a, veoma je jednostavan za koristenje, osigurava dodatne
mogucnosti u odnosu na BDE kad su u pitanju MS baze, ima znatno manji
overhead od BDE-a tako da je mrezni rad daleko brzi i sl.
Na klientu nije potrebno imati BDE instaliran, bazu je moguce jednostavno
kopirati na drugo mjesto jer je samo jedan file, nema ODBC-aliasa jer se
koriste connection stringovi, moguca je sinhronizacija s drugim bazama,
kompaktiranje i sve druge stvari koje se samo importiraju kao type library,
jednom napravljena baza u Accessu se moze lako upsize-ati na SQL Server tj.
MSDE, zavisi od potreba.

Znaci, za manje projekte ja bih svakako izabrao Access, za vece je ionako
potrebno uzeti i neku bazu tako da je onda IB odlican izbor.


Davor Pleskina

unread,
Feb 15, 2001, 11:37:53 AM2/15/01
to
"Mladen Kuzminski" <mla...@konto.hr> wrote in message
news:96g5ui$o3p$1...@sunce.iskon.hr...
> Probajte InterBase.
> Bit ce Vam blizi od Accessa buduci da ste radili s Informixom. Osim toga
IB
> je open source (dakle free) i ima direktni driver i komponente za Delphi
pa
> stvar funkcionira puno ljepse (smooth kak bi rekli Englezi) od Accessa.
> www.borland.com/interbase

Sta to znaci, da je IB besplatan i za Windows platformu?!?!
Zar sam ja toliko neinformiran???


CUSTOS

unread,
Feb 15, 2001, 1:36:04 PM2/15/01
to
Ni ja nisam znao dok prije nekoliko dana nisam procitao na usenetu. Odmah
sam ga "skin'o" s borlandove stranice i vjeruj bas jeste free.


"Davor Pleskina" <davor.p...@ri.tel.hr> wrote in message
news:96h0vf$2403$1...@as121.tel.hr...

Buch

unread,
Feb 15, 2001, 2:50:07 PM2/15/01
to
IB je open source.

Davor Pleskina

unread,
Feb 16, 2001, 8:35:02 AM2/16/01
to
"Buch" <bu...@iname.com> wrote in message news:96hbn4$2j4l$1...@as121.tel.hr...
> IB je open source.

Uffff... A s cime se otvara? :o)


Dejan (DeX)

unread,
Feb 17, 2001, 11:57:42 AM2/17/01
to
Problem ce se javiti ako procitaz npr. ID zadnjeg sloga i inkrementiras, te
prije nego sto ga spremis, netko na radnoj stanici ucini isto samo sto
spremi slog prije tebe. Tada ces imati dupli kljuc...
Stoga je "autoinc" sigurna stvar, jer je izvedena na razini baze i to u
momentu spremanja...
No, to zna stvarati i probleme, osobito oko sinhronizacije podataka i
slicno..., pa se gubi svojevrsna sloboda...

DeX

"Mladen Kuzminski" <mla...@konto.hr> wrote in message

news:96g5ui$o3p$2...@sunce.iskon.hr...

Mladen Kuzminski

unread,
Feb 19, 2001, 4:09:11 AM2/19/01
to

"Davor Pleskina" <davor.p...@ri.tel.hr> wrote in message
news:96jac4$5l6u$1...@as121.tel.hr...


Postoji binary za skidanje (zipana instalacija) a imate i source ako Vam je
potreban.

Mladen Kuzminski

unread,
Feb 19, 2001, 4:10:18 AM2/19/01
to

"Dejan (DeX)" <ddr...@inet.hr> wrote in message
news:96majj$mf9$1...@sunce.iskon.hr...

> Problem ce se javiti ako procitaz npr. ID zadnjeg sloga i inkrementiras,
te
> prije nego sto ga spremis, netko na radnoj stanici ucini isto samo sto
> spremi slog prije tebe. Tada ces imati dupli kljuc...
> Stoga je "autoinc" sigurna stvar, jer je izvedena na razini baze i to u
> momentu spremanja...
> No, to zna stvarati i probleme, osobito oko sinhronizacije podataka i
> slicno..., pa se gubi svojevrsna sloboda...
>
> DeX
>

Ja sam to rijesio tako da idem s "try" pa ako ne prodje povecavam dok ne
dodjem na slobodnu vrijednost.
Autoinc ne radi na svim bazama.

Mladen Kuzminski

unread,
Feb 19, 2001, 4:08:24 AM2/19/01
to

"Davor Pleskina" <davor.p...@ri.tel.hr> wrote in message
news:96h0vf$2403$1...@as121.tel.hr...

Postoji IB6.01 (www.borland.com/interbase) Open Source za Win, Linux i
Solaris.

MirelaG

unread,
Feb 19, 2001, 6:25:30 AM2/19/01
to
IB nema sinonime (Informix) tj. linkane tablice (Access) ?

Lijep pozdrav i hvala,

m.


Robert Idlbek

unread,
Feb 19, 2001, 6:35:26 AM2/19/01
to
"Mladen Kuzminski" <mla...@konto.hr> wrote in message
news:96qojr$nqb$5...@sunce.iskon.hr...

> Autoinc ne radi na svim bazama.

Koja ne radi s autoinc?

Davor Pleskina

unread,
Feb 19, 2001, 7:49:53 AM2/19/01
to
"Mladen Kuzminski" <mla...@konto.hr> wrote in message
news:96qojr$nqb$5...@sunce.iskon.hr...

>
>
> Ja sam to rijesio tako da idem s "try" pa ako ne prodje povecavam dok ne
> dodjem na slobodnu vrijednost.
> Autoinc ne radi na svim bazama.
>

Dakle, ako se dvije aplikacije konkurentno nakace na bazu, beskonacno ce se
vrtjeti svaka u svojoj try...end petlji jer ce slijedeca vrijednost biti
zauzeta? Glasam za posebnu tablicu (ili bilo koji tip fajla, moze i INI)
koji drzi zadnju dostupnu vrijednost, ne moze se share-ati (dakle rabiti
istovremeno od dva usera) pa UVIJEK sigurno ima slijedecu raspolozivu
vrijednost u sebi. To je slicno transakcijskoj zastiti koju rabe SQL baze.
Zasto ne? Brzo i jednostavno. Cak ne treba niti trositi tablice u bazi za
tako jednostavne countere.


Davor Pleskina

unread,
Feb 19, 2001, 7:46:53 AM2/19/01
to
"Mladen Kuzminski" <mla...@konto.hr> wrote in message
news:96qojq$nqb$4...@sunce.iskon.hr...

>
> "Davor Pleskina" <davor.p...@ri.tel.hr> wrote in message
> news:96jac4$5l6u$1...@as121.tel.hr...
> > "Buch" <bu...@iname.com> wrote in message
> news:96hbn4$2j4l$1...@as121.tel.hr...
> > > IB je open source.
> >
> > Uffff... A s cime se otvara? :o)
> >
> Postoji binary za skidanje (zipana instalacija) a imate i source ako Vam
je
> potreban.

Jel ovo sala ili netko nije shvatio da se ja salim c Buchem?


Mladen Kuzminski

unread,
Feb 20, 2001, 4:06:26 AM2/20/01
to

"MirelaG" <mpr...@helix.hr> wrote in message
news:96qvon$33t6$1...@as121.tel.hr...

> IB nema sinonime (Informix) tj. linkane tablice (Access) ?
>
> Lijep pozdrav i hvala,
>
> m.
>
>

Na sto tocno mislite? Molim malo opisite.

MirelaG

unread,
Feb 21, 2001, 5:59:47 AM2/21/01
to
> > IB nema sinonime (Informix) tj. linkane tablice (Access) ?
> >
>
> Na sto tocno mislite? Molim malo opisite.
>

To je kada se iz jedne baze linka na tablicu u drugoj bazi. Dakle, tablica
fizicki postoji u drugoj bazi a iz baze iz koje je napravljen link (ili
sinonim) administriranje je potpuno jednako kao da je tablica u istoj bazi.

m.


Mladen Kuzminski

unread,
Feb 22, 2001, 5:05:29 AM2/22/01
to

"MirelaG" <mpr...@helix.hr> wrote in message
news:97070i$c36m$1...@as121.tel.hr...

LInkanje postoji (npr. kod upita) a za administriranje nisam probao.
Probajte na borland.com grupama i dokumentaciji koja se tamo nalazi.


--
Zelim Vam ugodan i uspjesan dan,
Mladen Kuzminski

BORLAND distribucija
KONTO d.o.o. Pozega, Varazdin

Darko Krofak

unread,
Mar 1, 2001, 5:15:57 AM3/1/01
to
> Dakle, ako se dvije aplikacije konkurentno nakace na bazu, beskonacno ce
se
> vrtjeti svaka u svojoj try...end petlji jer ce slijedeca vrijednost biti
> zauzeta?

Ja sam imao problema sa Autonumber poljem, i to bez dvije aplikacije.
Naime, nakon mnogo operacija na tablici, odredivanje Autonumber vrijednosti
se pocelo ponasat dosta cudno, npr. ako sam imao deset tisuca zapisa, zatim
obrisao onog na 3000-tom, mjestu, ponekad (ali samo ponekad) mi je znao
kao iducu Autonumber uzeti 3000, pa onda opet vrijednosti iza 10000.
Nekad je to radilo normalno. Uglavnom, bilo je potrebno napraviti
kompakt pa je to sredilo stvari.
Uglavnom, otada izbjegavam koristenje autonumber polja.


Davor Pleskina

unread,
Mar 1, 2001, 12:50:11 PM3/1/01
to
"Darko Krofak" <darko....@infolink-software.com> wrote in message
news:97l7bc$7k9s$1...@as121.tel.hr...

> Nekad je to radilo normalno. Uglavnom, bilo je potrebno napraviti
> kompakt pa je to sredilo stvari.
> Uglavnom, otada izbjegavam koristenje autonumber polja.

AUTONUMBER (autoinc) polja su opasna kao podatak za sudjelovanje u kljucu
ili indeksu tablice, upravo zato sto transferom slogova prilikom recimo
kompaktiranja tablica mogu promijeniti vrijednost. Dobra su kod
nagomilavanja zapisa s istovjetnim kljucevima, ali i tada je njihova
upotreba sporna.

Po meni, izbjegavati autoinc polja (iskustvo).


Mario Splivalo

unread,
Mar 2, 2001, 5:44:09 AM3/2/01
to
In article <97m28b$902g$2...@as121.tel.hr>, davor.p...@ri.tel.hr
says...

> AUTONUMBER (autoinc) polja su opasna kao podatak za sudjelovanje u kljucu
> ili indeksu tablice, upravo zato sto transferom slogova prilikom recimo
> kompaktiranja tablica mogu promijeniti vrijednost. Dobra su kod
> nagomilavanja zapisa s istovjetnim kljucevima, ali i tada je njihova
> upotreba sporna.
> Po meni, izbjegavati autoinc polja (iskustvo).

A, sto da onda radim kad imam gomilu podataka, koji moraju biti
indeksirani?

Mike

NewsJJ

unread,
Mar 2, 2001, 7:37:01 AM3/2/01
to
"Mario Splivalo" <mspl...@jagor.srce.hr> wrote in message
news:MPG.150997e77...@news.globalnet.hr...

>>
> > Po meni, izbjegavati autoinc polja (iskustvo).
>
> A, sto da onda radim kad imam gomilu podataka, koji moraju biti
> indeksirani?
>
> Mike

Indeksiraj ih, po kojem god hoces polju ili grupi polja.
A ako hoces da polje bude autoinkrement
nemoj da postavis polje autoinc. vec ubaci tabelu
sa poljima
ID_tabele Zadnji_ID
koji kod unosa povecas...

Jednostavno i robusno

Autoinc. = jednostavno i manje robusno

pozdrav Mario

--
Jos trazim dobar sig....

Davor Pleskina

unread,
Mar 2, 2001, 4:24:16 PM3/2/01
to
"NewsJJ" <New...@SoftHome.net> wrote in message
news:97o6i7$ccmn$1...@as121.tel.hr...

> "Mario Splivalo" <mspl...@jagor.srce.hr> wrote in message
> news:MPG.150997e77...@news.globalnet.hr...
> >>
> > > Po meni, izbjegavati autoinc polja (iskustvo).
> >
> > A, sto da onda radim kad imam gomilu podataka, koji moraju biti
> > indeksirani?
> >
> > Mike
>
> Indeksiraj ih, po kojem god hoces polju ili grupi polja.
> A ako hoces da polje bude autoinkrement
> nemoj da postavis polje autoinc. vec ubaci tabelu
> sa poljima
> ID_tabele Zadnji_ID
> koji kod unosa povecas...
>

Ili odredi zadnji sa MAX(polje). Ako je "polje" dio kljuca, MAX je trenutan.


gargantua

unread,
Mar 6, 2001, 2:01:15 AM3/6/01
to
> Ili odredi zadnji sa MAX(polje). Ako je "polje" dio kljuca, MAX je
trenutan.

Nije dobro. Postoji mogucnost da dva racunala dobiju isti broj. Ne govorim
bez veze imao sam tih problema. Posebno se pokazalo neprakticno kod modemske
veze.

Ono rijesenje s drugom tablicom cija vrijednost se povecava prije citanja
slijedeceg broja je puno kvalitetnija.

Ovo rijesenje je dobro ako je sustav namjenjen samo jednom racunalu ili ako
se ista operacija (unos novog dokumenta) nece odvijati simultano na dva
racunala.

Pozdrav, Marko.


GAZ

unread,
Mar 7, 2001, 4:13:53 PM3/7/01
to
pretpostavimo da se radi o unosu faktura. svaka faktura ima svoj broj. uradi
indeks i/ili primary key po koloni u kojoj se cuvaju podaci o broju fakture.
u sistemu ne bi trebale da posto je dvije iste fakture, zar ne? generalno,
najbolje je izbjegavati bilo kakva polja tipa ID, ukoliko se to moze izbjeci
i koristiti podatke koji su nam dostupni.

GAZ!!!
Meum Verbum Est Honor Mea
Meus Honor Est Vitae Mea


"gargantua" <Gargan...@hotmail.com> wrote in message
news:9821sl$6s7n$1...@as121.tel.hr...

gargantua

unread,
Mar 9, 2001, 2:17:06 AM3/9/01
to

"GAZ" <gor...@blic.net> wrote in message
news:986brl$hr$1...@baldrick.blic.net...

> pretpostavimo da se radi o unosu faktura. svaka faktura ima svoj broj.
uradi
> indeks i/ili primary key po koloni u kojoj se cuvaju podaci o broju
fakture.
> u sistemu ne bi trebale da posto je dvije iste fakture, zar ne? generalno,
> najbolje je izbjegavati bilo kakva polja tipa ID, ukoliko se to moze
izbjeci
> i koristiti podatke koji su nam dostupni.

Da, slazem se, ali ponavljam jos jedamput, kod nas je situacija takva da su
nam linije kod povezivanja uvijek za X puta slabije nego sto bi to bilo
optimalno, pa tako kod procedure citaj najveci broj (PO INDEXU, dakle BRZO),
posalji broj clientu (PO TELEFONSKOJ LINIJI na kojoj se trenutno odvija X
procesa i njena propusnost je prilicno mala SPORO), povecaj broj (U MEMORIJI
BRZO), pospremi uvecani broj u bazu (ponovo TELEFONSKA LINIJA, dakle sporo),
commit (ponovno TELEFONSKA LINIJA SPORO).

Ako u isto vrijeme (BRZO+SPORO+BRZO+SPORO+SPORO dakle i vise nego dovoljno
vremena) jos jedna osoba unutar LAN-a uradi isti posao
(BRZO+BRZO+BRZO+BRZO+BRZO) pojavljuje se isti broj fakture.

Pozdrav


0 new messages