Delphi, msAccess like z parametrami

0

Mam połaczenie z bazą Access przy użyciu ADO. Jak robię zwykłe zapytania Query to wszystko jest OK. Ale mam problem z użyciem LIKE. Chcę coś takiego Select * from Baza where Nazwisko like 'N*' - niestety wywala błąd "Za mało parametrów. Oczekiwano 1." Gdy zrobię to tak: Select * from Baza where Nazwisko like N - to zadziała, ale chodziło o to by wyszukane zostały wszystkie nazwiska zaczynające się na N. Zna ktoś rozwiązanie tego problemu?

0
SELECT * FROM baza WHERE nazwisko LIKE "M*"
0

Misiekd - Tak owszem też tak myślałem, działa to tak na MySQL, Posgresql itp. Ale nie na msAccess. Masz jakąś inną propozycję?

0

http://www.techonthenet.com/access/queries/like.php
błąd musisz mieć w innym miejscu

0

Ale co tu może być nie tak?

ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('Select Nazwa from Baza where Nazwa like "A*" ');
ADOQuery.Open;

Teoretycznie powinno to zadziałać... a jednak wywala błąd. Bez użycia klauzuli LIKE działa bez problemu

0

Wreszcie znalazłem o co chodzi. Nie można w kodzie używać znaku cudzysłowy ". W MySQL to było robić bez problemu. Na razie ominąłem ten problem wczytując zapytanie z pliku. Ale wie może ktoś jak to można ominąć? Przy użyciu składni LIKE trzeba wpisać wyrażenie porównywane w cudzysłowie, ale nie można tego wpisać wprost bo wywala błąd (chodzi o podwójny cudzysłów - musi być pojedyńczy).

0

Wreszcie znalazłem o co chodzi. Nie można w kodzie używać znaku cudzysłowy ". W MySQL to było robić bez problemu. Na razie ominąłem ten problem wczytując zapytanie z pliku. Ale wie może ktoś jak to można ominąć? Przy użyciu składni LIKE trzeba wpisać wyrażenie porównywane w cudzysłowie, ale nie można tego wpisać wprost bo wywala błąd (chodzi o podwójny cudzysłów - musi być pojedyńczy).

1 użytkowników online, w tym zalogowanych: 0, gości: 1