Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-04-27, 20:05x



Odpowiedz w temacie  [ Posty: 5 ] 
Klucze w bazie 
Autor Wiadomość

Rejestracja: 2008-07-11, 13:33
Posty: 78
Post Klucze w bazie
Mam pytanie dotyczące wykorzystania indeksów w bazach programu Handel premium.
Udało mi się dotrzeć do takich indeksów i kluczy. Mam więc teraz pytanie związane z używaniem tych indeksów w wyszukiwaniu konkretnych rekordów.
Zadam pytanie na przykładzie kluczy z handlowej bazy UZ.
Jeżeli posiadam np. dla indeksu "kodobcy" przypisane pola "typi" i "kodobcy", to z jakich innych pól w tabeli jestem w stanie pobrać wartości, bo np. w tym przypadku mogę np. wyrzucić id
Kod:
   
    baseUZ uz
    uz.SetKey("kodobcy")
    uz.SetKeySeg("typi",32)
    uz.SetKeySeg("kodobcy","podany kod obcy")
    uz.GetRec( EQ )
    wynik = uz.GetField("id")
    uz.Close()


a już "iduz" się nie da.

Kod:
   
    baseUZ uz
    uz.SetKey("kodobcy")
    uz.SetKeySeg("typi",32)
    uz.SetKeySeg("kodobcy","podany kod obcy")
    uz.GetRec( EQ )
    wynik = uz.GetField("iduz")
    uz.Close()


W poniższym przypadku gdy chcę uzyskać "iduz" na podstawie indeksu "kodnasz" też nie wychodzi /W indeksie "kodnasz" występują pola (typi, iduz, idkh)/:


Kod:
   
    baseUZ uz
    uz.SetKey("kodnasz")
    uz.SetKeySeg("typi",32)
    uz.SetKeySeg("idkh",1625)
    uz.GetRec( EQ )
    wynik = uz.GetField("iduz")
    uz.Close()


Mniej więcej znam teorię o relacyjności baz danych, jednak mam problem z przełożeniem tego na praktykę. Mam więc prośbę o wskazówkę w jaki sposób mogę używać wiedzy na temat indeksów...


2009-10-14, 12:00
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3983
Pomógł: 445
Post Re: Klucze w bazie
artur17 pisze:
Mam pytanie dotyczące wykorzystania indeksów w bazach programu Handel premium.
Udało mi się dotrzeć do takich indeksów i kluczy. Mam więc teraz pytanie związane z używaniem tych indeksów w wyszukiwaniu konkretnych rekordów.
Zadam pytanie na przykładzie kluczy z handlowej bazy UZ.
Jeżeli posiadam np. dla indeksu "kodobcy" przypisane pola "typi" i "kodobcy", to z jakich innych pól w tabeli jestem w stanie pobrać wartości, bo np. w tym przypadku mogę np. wyrzucić id
Kod:
   
    baseUZ uz
    uz.SetKey("kodobcy")
    uz.SetKeySeg("typi",32)
    uz.SetKeySeg("kodobcy","podany kod obcy")
    uz.GetRec( EQ )
    wynik = uz.GetField("id")
    uz.Close()


a już "iduz" się nie da.

Kod:
   
    baseUZ uz
    uz.SetKey("kodobcy")
    uz.SetKeySeg("typi",32)
    uz.SetKeySeg("kodobcy","podany kod obcy")
    uz.GetRec( EQ )
    wynik = uz.GetField("iduz")
    uz.Close()


kod wygląda dobrze. Zrób
Kod:
print uz.GetRec( EQ )

i sprawdź co Ci wyświetla w obu przypadkach. Powinno "0"

artur17 pisze:
W poniższym przypadku gdy chcę uzyskać "iduz" na podstawie indeksu "kodnasz" też nie wychodzi /W indeksie "kodnasz" występują pola (typi, iduz, idkh)/:


Kod:
   
    baseUZ uz
    uz.SetKey("kodnasz")
    uz.SetKeySeg("typi",32)
    uz.SetKeySeg("idkh",1625)
    uz.GetRec( EQ )
    wynik = uz.GetField("iduz")
    uz.Close()


Mniej więcej znam teorię o relacyjności baz danych, jednak mam problem z przełożeniem tego na praktykę. Mam więc prośbę o wskazówkę w jaki sposób mogę używać wiedzy na temat indeksów...

Jeżeli klucz zawiera 3 pola to te trzy pola musisz wypełnić za pomocą SetKeySeg.
Czyli klucz "kodnasz" nie jest odpowiednim kluczem do znalezienia wartości pola iduz bo musisz wcześniej już znać jego wartość.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2009-10-14, 14:58
Wyświetl profil

Rejestracja: 2008-07-11, 13:33
Posty: 78
Post 
Bardzo dziękuję.
Ale załóżmy jeszcze taką sytuacje.
Znam indeks "kodnasz" z tabeli UZ, przypuśćmy też, że znam wszystkie potrzebne pola dla tego indeksu (typi, iduz, idkh).
I pytanie: Skąd mogę wiedzieć jakie pola z tabeli UZ będę mógł odczytać na podstawie tego indeksu?


2009-10-19, 15:42
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3983
Pomógł: 445
Post 
artur17 pisze:
I pytanie: Skąd mogę wiedzieć jakie pola z tabeli UZ będę mógł odczytać na podstawie tego indeksu?


Po odczytaniu rekordu z bazy za pomocą polecenia GetRec możesz odczytać wartości każdego pola w tym rekordzie za pomocą GetField niezależnie od tego z czego składał się klucz.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2009-10-19, 16:47
Wyświetl profil

Rejestracja: 2008-07-11, 13:33
Posty: 78
Post 
Dziękuję :)


2009-10-20, 08:08
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 5 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. dwa klucze sprzętowe

w Techniczne

iredy

5

3149

2012-10-30, 15:57

krzysiek Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. klucze bazy słowniki

w Programowanie

Pan Czesio

1

3877

2008-07-31, 23:23

darek.007 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Otwarcie bazy PW - klucze?

w Programowanie

-simon-

4

2917

2013-03-05, 10:53

-simon- Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. dwa klucze sprzętowe

w Techniczne

iredy

1

2833

2011-03-22, 15:46

wrob Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 56 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant