Witam, siedze już ładnych parę godzin i nie umiem sobie poradzić, procedura działa dla zczytanych paru linii(dokładnie 6) i zawsze wyrzuca mi bład przy zaczytaniu 7 linii, w załączniku kod procedury i bląd
Która instrukcja powoduje rzucenie błędu?
Form31.ZQuery3.filter := 'nazwisko=' + pnazwisko + 'imie=' + pimie + 'pesel=' + ppesel; (ustawienie filtra
Hm, tam na pewno nie ma być coś w rodzaju 'nazwisko=' + pNazwisko + ' AND imie=' + pImie + (...)
?
Form31.ZQuery3.filter := 'nazwisko=' + pnazwisko + 'and'+'imie=' + pimie + 'and'+'pesel=' + ppesel;
poprawiłem, ale bez efektów, odczytuje 7 linii a przy 8 wywale podany wcześniej bląd
Przecież po skonstruowaniu tego zapytania wyjdzie na przykład nazwisko=wołodyjowskiandimie=maciejandpesel=11230912309
, czegoś brakuje :P
w wyrażeniu filtrującym brakuje spacji rozdzielających poszczególne warunki
'nazwisko=' + pnazwisko + 'and'+'imie=' + pimie + 'and'+'pesel=' + ppesel
z tego może wyjść coś takiego
'nazwisko=Kowalskiandimie=janandpesel=189898989898'
ok ale to polecenie filtruje , zatem moze filtrowanie nie działąc, problem w tym, ze pare razy pętle przechodzi a po którejs wywala bład
prawdopodobnie problem jest w treści obrabianego pliku tekstowego i użyciu funkcji extractstrings
która ma pewne ograniczenia
pokaż jak wygląda ten plik
Twój filtr nie działa ponieważ definiujesz filtr ale nie ustawiasz Form31.ZQuery3.filtered=true
tym samym w wyrażeniu filtrującym możesz mieć cokolwiek, nawet przepis na sernik, a zatem to nie filtrowanie rzuca wyjątkiem
zgodnie z prośbą plik w załączniku
tak na szybko to plik wygląda ok i extractcstrings powinno sobie z nim poradzić
podejrzyj w debuggerze jak wygląda wyrażenie filtrujące Form31.ZQuery3.filter
nie znam dobrze komponentów Zoes , być może samo zdefiniowanie wyrażenia filtrującego włącza filtrowanie
moze by zamienic filtrowanie na locate, ale nie czuje dokladnie skladni tej funcji, moze by pan podpowiedział jak zapisac locate po imieniu nazwiski i peselu, z gory dziękuję
metody filter
i locate
działają zupełnie inaczej , pierwsza ogranicza zestaw danych dataseta do wszystkich wierszy spełniających warunkek filtrowania , druga ustawia kursor w datasecie na pierwszy wiersz "pasujący" do warunku 'locate'
to mi tównież pasuje, napisałem któtką prośbę na priv
jeśli używasz komponentów Zeos to sposobu użycia metody Locate
poszukaj w tutorialach do Zeosa
implementacja metody Locate
może być różna dla różnych datasetów , A Zeos to trochę nie moja bajka , nie jestem w tym ekspertem