Visual Basic – ADO i SQL

Do sada smo proลกli pristup i pretraลพivanje (filtriranje) podataka iz tabela preko ADO modela, a sada prelazimo na sloลพenije pretrage – one uz pomoฤ‡ upitnog SQL jezika. Sam Recordset moลพemo kreirati i uz pomoฤ‡ SQL-a, tj. u metodi Open umesto tabele iz koje uzimamo podatke, moลพemo navesti SQL naredbu koja ฤ‡e odrediti koji se podaci izuzimaju. U ovom sluฤaju ฤ‡e SQL instrukcija biti filter. Kao ลกto veฤ‡ sigurno znate, SQL-om moลพemo i brisati, menjati i dodavati nove podatke.

Osnovna sintaksa SELECT naredbe je sledeฤ‡a:


SELECT polje1, polje2…
FROM tabela
WHERE uslovi ;

Dalje neฤ‡emo detaljnije ulaziti u objaลกnjavanje sintakse samog SQL-a, poลกto u ovoj rubrici moลพete u SQL prilozima pronaฤ‡i mnogo viลกe o SQL jeziku. Da se vratimo na bazu „Northwind“ i primenimo jedan SQL upit. Upit ฤ‡emo izvrลกiti nad poznatom tabelom Products:


Rs.Open „SELECT *
FROM Products
WHERE UnitPrice < 20", veza

Ovim upitom iz tabele „Products“ izdvajamo sve slogove (proizvode) koji u polju „Unitprice“ imaju vrednost manju od dvadeset, i te slogove smeลกtamo u Recordset.

Pored selekcije podataka preko ADO-a i SQL-a, moลพemo izvrลกavati i upite akcionog tipa. Recimo, moลพemo brisati polja u odreฤ‘enim slogovima tabele koji zadovoljavaju odreฤ‘eni kriterijum. U ovakvim sluฤajevima SQL naredba ne vraฤ‡a Recordset:


veza.EXECUTE „DELETE UnitPrice
FROM Products
WHERE ProductName LIKE ‘*mix*’ „, veza

Na sliฤan naฤin funkcioniลกe i naredba UPDATE, koja menja vrednosti u tabeli i gde opet nemamo Recordset kao rezultat:


veza.EXECUTE „UPDATE Products
SET UnitPrice = 0
WHERE UnitPrice = 90“

Prethodnom naredbom prepravljamo cene proizvoda na nulu, i to kod onih proizvoda ฤija je dotadaลกnja cena bila 90.

Pratite Krstaricu na www.krstarica.com