Sqlite da atigi bir nechta funksiya bor, oddiy dasturlar uchun bu yetarli. Lekin murakkabroq so`rovlarni tuzish uchun bu albatta kamlik qiladi. Shu sababli Sqlite o`ziga qo`shimcha funksiya yozib undan keng foydalanishimiz uchun darvozalarini ochib qo`ygan.
Biz istan tipdagi funksiyani qo`shib, unga maxsus logikani ishlatishimiz mumkin. Bu funksiyalar yacheykalar bo`yicha har bir ustun uchun alohida tepadan pastga qarab ishlaydi.
Aggregate funksiyalar 1 dona natija qaytaradi(masalan: sum, min, max,avg, count,..), Scalar funksiyalar satrlarning soniga teng natija qaytaradi.(length, lower, upper, day, year,...)
Foydalanish tartibi:
1. Yangi funksiyamizni Connection dan ro`yxatdan o`tkazamiz
_connection.BindFunction(new Lower());
2. Yangi funksiya tanasi using System; using System.Data.SQLite; namespace SQLite.CustomFunction { [SQLiteFunction(Name = "lower", Arguments = 1, FuncType = FunctionType.Scalar)] public sealed class Lower : SQLiteFunction { public override object Invoke(object[] args) { return args.Length > 0 ? (args[0].ToStringSqliteda lower funksiyasi bor, ammo u krill harfi uchun ishlamaydi, bizni yangi funksiyamiz Sqlite ning funksiyasini qayta yuklaydi(override, overload). Esda tuting: Bu so`rov sqlite browserida ishlamaydi, chunki uning kodida bu funksiya yo`q, faqat bizning ulanish usluniimizdagi ro`yxatga olingan dasturimizda ishlaydi() ?? "").ToLower() : null; } } }
No comments:
Post a Comment