Witam.
Tworze dodatek do posiadanej aplikacji (opierającej sie na bazie MS Access'owej) i napotkałem problem...
W bazie jest tabela towary.
Jeżeli otworzę baze w Accessie czy OpenOffice.org Base i wykonam kwerendę SELECT * FROM towary
otrzymuję 38702 wyników.
Tak samo w przypadku gdy wykonam zapytanie SELECT * FROM towary WHERE klasyfikacja LIKE '*'
.
Natomiast wykonując te zapytanie w swojej aplikacji dostaje różne wyniki.
Mam procedurę:
procedure ACCESS_OPEN(zapytanie: string);
begin
AccessQuery.Close;
AccessQuery.SQL.Text:=zapytanie;
TRY
IF AccessQuery.SQL.Text<>'' THEN AccessQuery.Open;
EXCEPT
ON e: Exception DO LOG(' BŁĄD PRODEDURY ACCESS_OPEN: ' +zapytanie+' '+E.Message);
END;
end;
Jeśli wywołam:
ACCESS_OPEN('SELECT * FROM towary');
AccessQuery.Last;
ShowMessage(IntToStr(FPomoc.AccessQuery.RecordCount));
Otrzumuje wynik 38702.
Natomiast wywołując
ACCESS_OPEN('SELECT * FROM towary WHERE klasyfikacja LIKE ''*''');
AccessQuery.Last;
ShowMessage(IntToStr(FPomoc.AccessQuery.RecordCount));
Otrzymuje 0.
Dlaczego ?
Z bazą łącze się ODBC przez plikowy DSN.
dodanie tagu 'access' - furious programming