SQL-kyselyt
SQL- komponenttiin laitettiin hakuehto
select * from puh
Tämä tarkoittaa, että valitaan kaikki kentät (*)
taulusta puh. Muutetaan ohjelmaa siten, että hakuehto voidaan
kirjoittaa itse.
Click here for Picture
Kuva . SQL-hakuehto
- 1.
Lisää komponentit Edit ja Button paneeliin
PanelNimi:
TEdit:
name = EditHakuehto
Text = 'select * from puh'
TButton:
name = ButtonHae
Caption = '&Hae'
Default = True
- 2.
- Laita Hae- nappulan tapahtumaksi:
procedure TFormPuh.ButtonHaeClick(Sender: TObject);
begin
QueryPuh.Close;
QueryPuh.SQL.Clear;
QueryPuh.SQL.Add(EditHakuehto.Text);
QueryPuh.Open;
end;
- 3.
- Kokeile ajaa ohjelmaa esim. SQL-
hakuehdoilla:
1: select nimi from puh
2: select nimi,postinumero from puh
3: select * from puh where nimi > "Bond"
4: select * from puh where nimi like "%p%"
5: select * from puh where Upper(nimi) like "%P%"
6: select nimi,osoite from puh order by osoite
7: select osoite from puh
Huomattakoon ettei järjestetyn haun (order by)
tulosta voida muokata! Delphi 1.0:ssa rajoitukset ovat vielä
voimakkaammat, esim. like- hakuehdolla haettuakaan taulua ei voi
editoida.
- Hakuehdolla
- select * from puh where upper(substring(nimi from 7 for 2)) ="AK"
- löydettäisiin mm. Ankka Aku. Lisää ohjelmaan
Edit- ikkuna, johon käyttäjä voi kirjoittaa nimeä
alusta päin. Kun käyttäjä on kirjoittanut a, haetaan kaikki
a:lla alkavat nimet, kun käyttäjä painaa vielä
lisäksi n, haetaan kaikki an - alkavat nimet jne. Haku tapahtuu
heti kun kirjainta on painettu. Onko tehtävän alussa annettu vinkki
sopiva tähän tarkoitukseen, vai olisiko joku vielä
yksinkertaisempi hakuehto käytettävissä. Jos haun tulos
halutaan korjailtavaksi, tulee tämä "ilmaiseksi"
Delphi2.0:ssa, mutta 1.0:ssa joutuu koko haun tekemään
toisella tavalla.
- (idean alku Delphi 1.0:aa varten : "A"<=nimi and nimi
<"B")