Newsgroup: it.comp.lang.delphi
Titolo: Ricerca su database access

Ciao,
domanda:
dovrei fare una ricerca in un database access attraverso un formettino di
ricerca su un'applicazione delphi. La tabella dove viene svolta la ricerca č
una tabella di contatti ( quindi nome, cognome indirizzo tel.... e categoria
di lavoro). Devo avere la possibilitŕ di inserire una chiave e di poter
scegliere tra tre "gruppi" di ricerca che sono
Cognome,Categoria e Email, i risultati poi verranno visualizzati in una
DBGrid. Cosa posso usare per realizzare tutto questo? Scusate ma sono scarsa
in delphi. Avevo pensato di inserire la chiave attraverso un TEdit e poi di
scegliere in quale colonna della tabella cercare attraverso dei radio
buttons. Il tutto poi dovrebbe finire in una query che mi tira fuori solo i
risultati che coincidono con la parola inserita... dovrebbe essere una cosa
del genere l'istruzione sql:
select * from Contatti
where 'valore radiobutton'='chiave inserita';
dove 'valore radiobutton' č il nome del campo dove faccio la ricerca e
'chiave inserita' č il suo valore.
Mi potete dare qualche dritta?
Grazie.
--
^°^°^°^°^°^°^°^°^°^°^°^°^°^°^°^°^°^°^°^
tyr...@interfree.it
ICQ --> 123002529
Giulia.   =^_^=
v°v°v°v°v°v°v°v°v°v°v°v°v°v°v°v°v°v°v°v°v°v

Metti una TQuery e un TDatasource in un datamodule.
Sul data module nella sezione published dichiari queste proprietą:
property TipoRicerca: TTipoRicerca read FTipoRicerca write SetTipoRicerca
property Chiave: string read FChiave write SetChiave;
poi dichiari un metodo public:
  function EseguiQuery: integer;
function TMuioDataModule.EseguiQuery: integer;
var
  s: string;
const
  basequery := 'SELECT * FROM IA TABELLA WHERE %S = %S';
begin
  Result := 0;
  case TipoRicerca of
    mtrCognome: s := format(baseQuery, 'COGNOME');
    mtrCategoria: s := format(baseQuery, 'CATEGORIA') ;
    mtrMail: s :=format(baseQuery, 'MAIL') ;
   end;
  s := Format(s, [Chiave]);
With Miaquery do
  begin
    Close;
    Sql.Clear;
    Sql.Add(s)
    Open;
    if IsEmpty then
      result := -1;
 end;
end;
ovviamente associ il datasource alla dbgrid del form.
Poi metti un bel pulsante e gli associ la action ci cui sopra.
Bye
A.

dimenticavo.....
crei una unit  e nella sezione interface ci metti:
type TTipoRicerca = (mtrCognome, mtrCategoria, mtrMail);
Poi metti questa unit nelle uses sia del datamodule che del form.
Bye
A.

 ricerca su un'applicazione delphi. La tabella dove viene svolta la ricerca 
<SNIP>
Tempo fa feci una cosa simile, non con ADO ma con tabelle di tipo
CODEBASE; se la cosa ti puo interessare ti invio via email il form con il
relativo codice.
Fammi sapere.
Ciao
Linus
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Ciao
Bacioni


   basequery := 'SELECT * FROM IA TABELLA WHERE %S = %S';
%S sta per il nome della variabile??


 %S sta per il nome della variabile??
Vedi la funzione Format nella guida di delphi.
Quando scrivi:
stringa :=  format('qualcosa %s', ['Pippo']);
ottieni:
qualcosa pippo.
Bye
A.

Allora, ho una variabile string comando che contiene la riga di comando sql
da eseguire.... come faccio a farlo eseguire ed a visualizzare in una dbgrid
i risultati cliccando su un t button? per ora il codice che ho č questo:
procedure TForm1.Button2Click(Sender: TObject);
begin
chiave:=keyric.Text;
if (opz1.Checked) then begin
    campo:='Email';
    end;
if (opz2.Checked) then begin
    campo:='Categoria';
    end;
if (opz3.Checked) then begin
    campo:='Cognome';
    end;
comando:='select * from contatti where '+campo+'='+chiave+';';
end;
In nell'azione ci dovrei mettere il comando per eseguire la query e far
visualizzare il risultato, perň non ci capisco
nulla..... Aiutatemi!!!
Grazie tantissimo giŕ da ora....
Bacioni.


Ma se invece di passare l'SQL usi Adodataset e gli passi semplicemente il
filtro???
Es: Adodataset1.filter = 'Campo Like ' + '''' + Edit1.Text + '*''';
      Adodataset1.filtered := true;
Secondo me è la strada più semplice ed immediata per filtrare database
access

Grazie a tutti, ora funge... era anche un problema di Access e del mio pc
che faceva le bizze!!
Bacioni a tutti!
