mojaSymfonia FORUM
https://forum.mix-soft.pl/

problem z kluczem
https://forum.mix-soft.pl/viewtopic.php?f=15&t=793
Strona 1 z 1

Autor:  iredy [ 2009-04-22, 11:40 ]
Tytuł:  problem z kluczem

Witam - to mój pierwszy post więc gratuluję pomysłu, forum znalazłem przypadkiem, radości było co niemiara ;)

Mam tego typu problem - AmBasic HMP - niby prosty SetKeySeg, niby powinno działać (opieram się na założeniu, że INTEGER z Pervasive'a to LONG z AmBasic'a), a nie chce... Co robię nie tak?


Kod:
int iPosDW = SetTaggedPos( FS )
long lIdDW = GetLineId(iPosDW)

int errDW
string sciezkaDW = KatalogFirmy()+"51dw.dat"
int iBazaDW = Open sciezkaDW for base "DW"
SetKey(iBazaDW,"id")
SetKeySeg(iBazaDW,"id",lIdDW)
errDW = GetRec(iBazaDW,EQ)
if errDW != 0 then Error "Blad obslugi bazy danych DW"
lIdDW = GetField(iBazaDW,"id")

int errPW
string sciezkaPW = KatalogFirmy()+"51pw.dat"
int iBazaPW = Open sciezkaPW for base "PW"
SetKey(iBazaPW,"dostawy")
SetKeySeg(iBazaPW,"iddw",lIdDW)
errPW = GetRec(iBazaPW,EQ)
if errPW != 0 then Error "Blad obslugi bazy danych PW"
print lIdDW
print LF
print GetField(iBazaPW,"id")


pozdrawiam
irek

Autor:  jacekk [ 2009-04-22, 19:54 ]
Tytuł: 

Klucz "dostawy" jest duplikowalny więc nie można pobierac rekordu symbolem EQ (równy). Należy stosowac GE (większy lub równy). Podając kod napisz co chcesz uzyskac. Domyślam się, że chodzi o rozliczenia dostawy więc należy zastosowac klucz "pozycje"
Kod:
int iPosDW = SetTaggedPos( FS )
long lIdDW = GetLineId(iPosDW)

int errDW
string sciezkaDW = KatalogFirmy()+"51dw.dat"
int iBazaDW = Open sciezkaDW for base "DW"
SetKey(iBazaDW,"id")
SetKeySeg(iBazaDW,"id",lIdDW)
errDW = GetRec(iBazaDW,EQ)
if errDW != 0 then Error "Blad obslugi bazy danych DW"
lIdDW = GetField(iBazaDW,"id")

int errPW
string sciezkaPW = KatalogFirmy()+"51pw.dat"
int iBazaPW = Open sciezkaPW for base "PW"
SetKey(iBazaPW,"pozycje")
SetKeySeg(iBazaPW,"typi",37)
SetKeySeg(iBazaPW,"iddw",lIdDW)
errPW = GetRec(iBazaPW,GE)
while errPW==0 && GetField(iBazaPW,"iddw")==lIdDW
   print using "\n iddw=%d idpw=%d",lIdDW,GetField(iBazaPW,"id")
   errPW=GetRec(iBazaPW,NX)
wend

Autor:  iredy [ 2009-04-23, 06:42 ]
Tytuł: 

Dzięki wielkie ! Z kluczem "pozycje" próbowałem wcześniej, ale też nie działało, więc próbowałem innym. Ruszyłem do przodu :lol:

irek

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/