Qatarli parametrlerdi filtrlew
SQL sorawın jaratatuǵın kodtı kórip shıǵayıq:
statement := 'SELECT * FROM users WHERE name = "' + userName
Bunday halda SQL inekciyalardı qılıw imkanin qaldırmaw ushın belgilerdi almastırıw procedurasın orınlawımız kerek, yaǵnıy arnawlı belgilerden ekranlastırıw kerek. Bul proceduranı orınlawda parametr tómendegiler menen almastırıladı :
• " tırnaqsha belgisine \"
• ' apostrof belgisine\'
• \ belgisine \\
Bul proceduranıń blok diagrammasın kórip shıǵamız. Bul programma kiriwde qatardı aladı hám nátiyjede qatarlardı tırnaqshalarǵa hám ózgertirilgen arnawlı belgiler menen shıǵaradı.
Ekranızasıya procesiniń blok sxeması
Pútin sanlı parametrlerdı filtrlew
SQL sorawın jaratatuǵın kodtı kórip shıǵayıq
statement := 'SELECT * FROM users WHERE id = ' + id + ';';
Parametr cifrlı bolǵan jaǵdayda arnawlı belgilerdi almastırıw hám tırnaqshalardı qoyıw járdem bermeydi, sebebi kóbinese cifrlı parametrler tırnaqshasız ótkeriledi. Sol sebepli, bunday jaǵdaylarda, programmistler parametrdiń túrin tekseriwleri múmkin, yaǵnıy parameter san ekenligin anıqlaw ushın. Eger parameter san bolmasa, soraw ulıwma orınlanbawı kerek.
Kóp programmalastırıw tillerinde standart funkciyalar bar bolıp qatarlardı pútin san mánislerge ótkeriwde járdem beredi.
Parametrlerdi tekseriw rejimin qollaymiz hám joqarıda keltirilgen SQL sorawınıń islewin kórip shıǵamız :
id_int: = StrToInt (id);
statement: = 'SELECT * FROM users from WHERE id =' + IntToStr (id_int) + ';';
Eger id parametri pútin san bolmasa bolmasa, qáte payda boladı hám StrToInt funkciyası EConvertError qátesin payda etedi. Bunıń ushın biz qáte xabarı nátiyjesin ornatıwıńız múmkin. Eki márte konvertacıya qılǵanlıǵı sebepli on altınshı sanaq sistemasında belgi nomerlerge durıs reakciya beredi.
Dostları ilə paylaş: |