delphi & mysql wyszukiwanie rekordów

0

Witam, zrobiłem dośc prosą bazę w delphi i mysql, dodawanie i usuwanie rekordów działa bez problemów teraz chodzi o wyszukiwanie rekordu na o nazwie "radiator" po wpisanie słowa radiator zostaje zaznaczony jeden rekord strzałką z boku i informacja,że został znaleziony w/w nazwa, mój problem polega na ty iż chciałbym żeby z bazy zostały wyciągnięte wszystkie rekordy które mają nazwe 'radiator' i wyświetlenie go w TDBGrid. mam następujący kod:
[code]procedure TForm1.Button1Click(Sender: TObject);
var nazw:string[20];
begin
nazw:=Inputbox('wprowadzanie nazwy','podaj nazwe','');
if Table1.Locate('wyrób',nazw,[loCaseInsensitive,loPartialKey]) then
ShowMessage('znaleziono: '+Table1['wyrób'])
else
ShowMessage('Nie ma: '+nazw);

end; [/code]
mój mail: [email protected]

0

Pokombinuj z tym:

Table1.Filtered := True;
Table1.Filter := 'radiator';
0

Witam, no nie działa

0

Query jest dobre na wszystko, znajdzie co trzeba i wszystko:)

0

Jeśli chodzi o filtrowanie to:

Table1.Filtered := False;
Table1.Filter := 'WYRÓB = ''wibrator''';
// lepiej nie używaj polskich liter (Ó) w nazwach pól
Table1.Filtered := True;

Jeśli chodzi o Query:
SELECT * FROM NAZWA_TABELI WHERE WYRÓB = "wibrator"
......................................................................LIKE "%wibrator%"

0

Kombinujr z SELECT ale przy próbie uruchomienia programu wywala mi UNDECLARET IDENTIFIER 'SELECT', czemu tak się dzieje?

0

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from NazwaTabeli where wyrób like :par1');
Query1.ParamByName('par1').AsString :=JakiśEdit;
Query1.Open;
Query1.Refresh;

0

Witam, wtdaje mi sie ze jestem blisko....mam juz cos takiego :
procedure TForm1.Button1Click(Sender: TObject);
var nazwa:string[20];
begin
nazwa:=Inputbox('wprowadzanie nazwy','podaj nazwe','');
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM dane WHERE nazwa ="radiator"');
Query1.Open;
end;

teraz po wcisnieciu wyswietla mi wszystko o nazwie "radiator" i juz jest 50% sukcesu, teraz jak widac w kodzie chcialbym zeby po wpisaniu nazwy jaka ja wpisze wyswietlil mi to.. wiem, ze cos z instrukcja string (chyba) ale nie wiem jak to zastosowac..
Pozdrawiam i wielkie dzieki z góry...

0

Witam, teraz mam taki kod, wszystko działa prawie OK tylko wyszukuje mi sam np:"radiator" ale chciałbym żeby wyświetliło mi też "radiator beta" mimo że mam LIKE to nie działa, gdzie jest błąd???
[code]
procedure TForm1.Button1Click(Sender: TObject);
var szukaj:string[20];
begin
szukaj:=Inputbox('wprowadzanie nazwy','podaj nazwe','');
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM dane WHERE nazwa LIKE :PARAM');
Query1.ParamByName('PARAM').AsString:=szukaj;
Query1.Open;
end;
end.
[/code]

0

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM dane WHERE nazwa LIKE '%radiator%');
// ! zwróć uwagę na procenty !
// znak % reprezentuje dowolny łańcuch znaków
// znak _ reprezentuje dowolny jeden znak
Query1.Open;

0

Tak ale w tym przypadku to nie działa :
procedure TForm1.Button1Click(Sender: TObject);
var szukaj:string[20];
begin
szukaj:=Inputbox('wprowadzanie nazwy','podaj nazwe','');
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM dane WHERE nazwa LIKE :'%PARAM%');
Query1.ParamByName('PARAM').AsString:=szukaj;
Query1.Open;
end;
end.

0

A po co Ci tutaj parametry? Nie ma sensu komplikować rzeczy prostych.
Zrób to tak:

procedure TForm1.Button1Click(Sender: TObject);
var 
  s: string
begin
  s:=Inputbox('wprowadzanie nazwy','podaj nazwe','');
  s := '''%' + s + '%''';
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('SELECT * FROM dane WHERE nazwa LIKE ' + s);
  Query1.Open;
end;
0

[hurra] [hurra] działa ! dzięki serdeczne. Pozdrawiam

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