Instrukcja LIKE w SQL

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • 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ą :-(

OL
  • Rejestracja: dni
  • Ostatnio: dni
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

jack
  • Rejestracja: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: dni
  • Postów: 137
0

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

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.