PDA

Visualizza la versione completa : QRY delphi 6


pegaso22
30-09-2003, 18:43
Ciao a tutti,
il mio problema è il seguente:
quando costruisco la mia qry per filtrare un db,
- uso = per fare confronti fra interi (ed il risultato, ovviamente, deve essere uguale);

- uso like per fare confronti con stringhe (ed il risultato deve essere uguale);

- cosa devo usare per fare un confronto con stringhe che mi dia un risultato compreso (Es. "luca" è compreso in "io mi chiamo luca")?

Fatemi sapere grazie.

alka
30-09-2003, 19:58
Credo che Like sia sempre la clausola da usare...magari prova specificando qualcosa come Like "*luca"...

pegaso22
30-09-2003, 21:31
Faccio un esempio più concreto

DM.Q_elenco.Params[0].AsString := (ComboBox1.Text);
dove combobox1.text = 'io mi chiamo luca';

DM.Q_elenco.SQL.Add('select * from rubr where tipo like :cerca1');

se tipo ha volore 'luca',
la risposta della QRY è negativa.

stessa cosa se io assegnassi a combobox1.text('%' + Edit1.Text + '%').

Vorrei che funzionasse allo stesso modo di come funziona l'ultimo esempio soltanto a valori invertiti.
Praticamente vorrei sapere un modo per dire: tutto cio che c'è prima e tutto ciò che c'è dopo il valore tipo (e cioè nel SQL e non nei parametri).

Spero di essermi chiarito un pò meglio.

alka
01-10-2003, 01:35
Originariamente inviato da pegaso22
Praticamente vorrei sapere un modo per dire: tutto cio che c'è prima e tutto ciò che c'è dopo il valore tipo (e cioè nel SQL e non nei parametri).

Non mi è ancora molto chiaro il problema...
Tu vuoi ottenere tutti quei record che contengono nel campo interessato un testo che include una delle tante parole inserito all'interno della casella di testo (Edit1 o ComboBox)?

Ad ogni modo, il filtraggio tramite SQL ha delle opzioni comunque limitate per non appesantire eccessivamente la complessità del linguaggio, quindi non sempre la clausola SELECT può risolvere problemi così complessi.

Se usi InterBase, ad esempio, puoi importare DLL contenenti funzioni definite dall'utente (UDF).
Cerca sulla documentazione per informazioni aggiuntive.

Loading