Instrukcja LIKE w SQL

KA
  • Rejestracja:około 22 lata
  • Ostatnio:ponad 4 lata
  • Postów:137
0

Delphi 7 i standardowa baza Paradox.

Jak wyjąć z tabeli wiersze gdzie kolumna zawiera ciąg znaków, a tak naprawdę jaki ciąg zastępuje ciąg liter.

Próbowałem

  1. LIKE '%ABC%' jak w Oracle
  2. LIKE 'ABC' jak w Accessie

Oba mi nie dzialają :-(


Kris
OL
  • Rejestracja:prawie 21 lat
  • Ostatnio:ponad 6 lat
0

Jesli stosujesz to poprzez TQuery to masz cos takiego

Query1.SQL.Text:='Select * form baza.db WHERE pole like :p0 ';
Query1.Params[0].AsString:='%'+Edit1.text+'%';
Query1.Open;

takie uzycie daje Ci wszystkie pola z bazy w ktorych pole zawiera text w Edi1

jesli dalbys % tylko z przodu to masz konczocy sie na Edit1 a z tylu to zaczynajacy sie od Edit1

Jak jescze jakies pytania do wal smialo........;D


Piotr
jack
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Sosnowiec
  • Postów:390
0

Jeśli używasz BDE+Paradox to % zastępuje dowolną ilość znaków, a _ - jeden znak (zob. http://www.jack1024.private.pl/downloads/download.php?cat=docs&scat=delphi5&f=LocalSQL.pdf.zip).
Dlatego Twoja 1) powinna działać !?!

Odnośnie 2) - W Accessie 2000, symbolem zastępującym dowolną ilość znaków, jest również %, nie - * (może w innych wersjach jest inaczej?).

Zwróć też uwagę na wielkości znaków. W niektórych bazach danych, przy porównywaniu, wielkość znaków jest rozróżniana (Paradox), a w niektórych nie (np. Access 2000).

KA
  • Rejestracja:około 22 lata
  • Ostatnio:ponad 4 lata
  • Postów:137
0

Działa wersja 1), nie wiem czemu nie działało musiałem mieć zaćmienie.
Dzięki


Kris

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.