Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-27, 03:07x



Odpowiedz w temacie  [ Posty: 8 ] 
Wyciąganie danych z bazy - ambasic 
Autor Wiadomość

Rejestracja: 2008-07-11, 13:33
Posty: 78
Post Wyciąganie danych z bazy - ambasic
Witam,
Próbuję wyciągnąć "id" dla rekordu z tabeli NT na podstawie pola "opis" i coś nie wychodzi...
Chodzi mi o taki efekt, który byłby odpowiednikiem zapytania SQL:
SELECT id FROM NT WHERE opis="zmienna opis"

Natomiast w AmBasicu mam z wyciąganiem danych z bazy wciąż problem... :(

Kod:
int sub Wartosc_ID (string kod, string opis)

   bdNT = Open KatalogFirmy() + "51nt.dat" for base "NT"
   SetKey (bdNT, "id")
   SetKeySeg (bdNT, "opis", opis)
   GetRec (bdNT, EQ)   
   string id1=GetField (bdNT, "id")
   Close bdNT

endsub


2009-06-10, 09:01
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
Chcesz znaleść rekord w bazie NT, który ma w polu "opis" pewną wartość a następnie sprawdzić jakie ID ma ten rekord?

W przykładzie użyłeś klucza "ID". W tym kluczu nie ma pola "opis".
Żeby zrealizować Twoje zadanie należy "przelecieć" całą bazę w poszukiwaniu wartości w polu opis.

Kod:
limit 8000
baseNT nt
nt.SetKey("id")
nt.SetKeySeg("id",0)
int err = nt.getrec(FS)
while err == 0
if nt.getfield("opis") == szykana_wartosc then print using "Id znalezionego rekordu %l"+lf,nt.getfield("id")
err = nt.getrec(NX)
wend


nie jest to zbyt wydajne rozwiązanie ale w tej chwili nie widzę innego.
napisz po co to robisz to może wymyślimy jakis inny sposób.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2009-06-10, 09:12
Wyświetl profil

Rejestracja: 2008-07-11, 13:33
Posty: 78
Post 
Dziękuję za szybką odpowiedź.
Moim celem jest ominięcie problemu bariery 40 znaków w Handlu Premium przy dodawaniu nowego towaru do bazy.
Dłuższe nazwy zapisywane są w polu "opis" tabeli NT.
W tabeli TW występuje pole "idlongname". Właśnie w to pole muszę wpisać "id" z tabeli NT.
Wartość "id" planuję wyszukać po opisie...


2009-06-10, 09:50
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
artur17 pisze:
W tabeli TW występuje pole "idlongname". Właśnie w to pole muszę wpisać "id" z tabeli NT.
Wartość "id" planuję wyszukać po opisie...


Jak to wpisać? czy to znaczy, że dodajesz nowe towary z poziomu AMBasica?

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2009-06-10, 09:53
Wyświetl profil

Rejestracja: 2008-07-11, 13:33
Posty: 78
Post 
Tak, wstawiam rekordy z towarem z poziomu ambasica.


2009-06-10, 10:16
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
no to zmienia postać rzeczy

1. Wstawiasz towar
Kod:
baseTw tw
[...]
tw.SetField("kod","nowy towar")
tw.SetField("nazwa","nazwa nowego towaru")
[...]
tw.DoInsert()


2. Wstawiasz długą nazwę do bazy NT
Kod:
baseNT nt
[...]
nt.SetField("super", tw.GetField("id"))
nt.DoInsert()


3. Aktualizujesz rekord towaru
Kod:
tw.SetField("idlongname",nt.GetField("id"))
tw.DoUpdate()

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2009-06-10, 10:31
Wyświetl profil

Rejestracja: 2008-07-11, 13:33
Posty: 78
Post 
Mam jeszcze jedno pytanie.
W związku z tym, że podane przykłady dostępu i operacji na rekordach różnią się w składni od standardowego Helpa Ambasica w Symfonii, to chciałbym zapytać w jaki sposób można zamknąć plik bazy po wykonani operacji na rekordzie. Standardowo jest to polecenie "Close nrBazy"
Jednak taka konstrukcja polecenia nie działa przy zastosowaniu powyższych przykładów.

Podobny problem mam z obsługą błędów przy tych operacjach.


2009-06-18, 08:47
Wyświetl profil
Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2008-04-18, 18:52
Posty: 5169
Pomógł: 59
Post 
A poogladaj standartowe raporty w handlu - czesc z nich uzywa dokladnie takich metod jak opisane na forum - tam tez znajdziesz pozostale polecenia :-)


2009-06-18, 10:03
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 8 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. wyciaganie kursow walut

w Programowanie

sebapr

0

2753

2008-11-19, 14:47

sebapr Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Otwieranie bazy danych

w Techniczne

data-net

8

7818

2008-10-15, 12:47

wrob Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. dodawanie danych do bazy

w Programowanie

madziarekp

1

3108

2008-12-18, 13:23

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Struktura bazy danych

w Techniczne

pit3r

10

10633

2015-03-06, 13:36

rafal Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 9 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