Newsgroup: it.comp.lang.delphi
Titolo: funzione TROVA con database

Ciao a tutti
Come faccio ad implementare la funzione TROVA su ciņ che č contenuto in un
database?
Volevo creare un programma per la catalogazione di CD audio e
Videocassette...
L'obiettivo č scrivere "funk" nel campo ed avere la lista di tutti i CD di
funk
Spero di essere stato chiaro
Grazie
Ghismond

>Spero di essere stato chiaro
Non tanto.
"Funk" dove sta scritto? in un campo specifico?
Puo' figurare in piu' campi della tabella?
Saluti
AS
"Se è Microsoft non funziona"

 wrote in message
8q84np$5j7$1...@news.mclink.it...


Si può fare?
Si!
Definisci prima di tutto quali sono i campi che vuoi utilizzare per la
ricerca.
Poi crei un form con una serie di editbox nelle quali l'utente puo' digitare
i dati da utilizzare per la ricerca
Magari, per alcuni usi delle dbcombo, tipo il genere che presumo lo scegli
da una tabella.
Anzi, volendo essere pignoli dovresti avere una serie di tabelle:
Registi
Autori
Generi
Ora, dopo che l'utente ha digitato queste notizie ti costruisci una query o
una espressione di filtro.
Una cosa del tipo:
strQuery := 'select * from supporti '
if EditBoxRegista.text <> '' then
    begin
    strquery := strQuery +" where regista = ' +EditBoxregista.Text
    end;
Se non sono stato chiaro scrivi, ok?


Si può fare, le dasi dati servono proprio per questo...
In linea di principio esistono 2 alternative, a seconda del tipo di
database che utilizzi:
1) usare le TTable (ed in particolare filtri o range)
2) usare le TQuery ( e quindi SQL)
Dalle tue domande credo di aver capito che non conosci molto la parte
di Delphi relativa ai database. Io ti consiglio di leggere l'help in
linea su questo argomento. (Spero che tu non ti offenda, non voglio
assolutamente darti un'impressione sbagliata).
Nel caso ti serva invece solo un consiglio su un metodo piuttosto che
un'altro allora posta un messaggio, ma per favore scrivi il tipo di
database utilizzato, le eventuali tabelle presenti, gli oggetti che
stai usando o che vorresti usare per accedere ai dati.
Ciao, Rocco.
Rocco Barbaresco:
Herrare Humanum Est,
Perseverare Ovest ....
(By Fichi D'India)

Ciao a tutti e grazie per l'interessamento al mio problema :)
Vi spiego meglio a che punto sono arrivato:
1) tutti i dati relativi ai film sono contenuti nel mio database .dbf in
un'unica tabella (ognuno nel proprio campo)
Es. Titolo, Attore Protagonista, Regista, Genere film, ecc... ecc...
2) per l'accesso ai dato, ho utilizzato il componente TTable
3) per la ricerca, ho creato un editbox nel quale dovrà essere inserita la
stringa da ricercare ed il campo d'interesse (es. "Leone" nel campo
"Registi")
Dopo aver dato uno sguardo all'help di delphi, ho pensato di filtrare le
informazioni con la proprietà FILTER di TTable.
La cosa funziona... ma la ricerca è limitata alla prima parola del campo,
mentre io vorrei estenderla a TUTTO il campo...
ESEMPIO:
  Nel campo Registi del database ci sono 3 film di Sergio Leone.
  Se digito (nell'editbox di ricerca) la stringa "sergio*" mi spuntano fuori
i tre film.
  Se digito "*leone" non trova niente...
  Ho provato anche con "*leone*", "leone", varie combinazioni, insomma, ma
niente :((
  A quanto pare, viene filtrato solamente la prima stringa del campo...
Come posso fare?
Sto sbagliando componente?
Non ho molta familiarità con i DB... s'è capito  :)
Ho trovato difficoltà ad applicare il suggerimento di A.Salvati
Grazie
Ghismond

Hai una sola tabella.
Quindi il tuo database non č normalizzato.
Dovresti creare una tabella registi, ad esempio.
Dopo, nella tabella "titoli" il campo registra diventa un codice che punta
alla tabella registi.
Idem dicasi per i generi.
Dovresti fare questa cosa per 2 motivi:
1) Normalizzare ed evitare ridondanza di dati
2) problema su digitazione.
Ad esempio, si puo' scrivere:
Sergio Leone
S.Leone
leone sergio
Sergio  Leone
e quindi le tue richerche diventano un casino.
Se il regista viene invece scelto da una lista gią esistente, l'utente non
deve digitare un dato ogni volta con il rischio di scriverlo in modo
diverso.
Saluti
AS
"Se č Microsoft non funziona"

 Ho trovato difficoltà ad applicare il suggerimento di A.Salvati
Forse perche' non usavi un TQuery ?