Pages

Wednesday, March 21, 2012

What is SQL Injection...???....coming soon


ඔබ දන්නේ SQL විතරද?


                            ඔයාලා ගොඩක් දෙනෙක් database Querying language එකක් විදිහට දන්නෙ SQL විතරයි නේද? ඒත් ඊට අමතරව තවත් languages තියෙනවා සමහර programming languages සමග පමනක් යොදා ගත හැකි ආකාරයට. .NET ගැන දන්න අයට නම් මේක අලුත් දෙයක් නෙමෙයි. නොදන්න අය වෙනුවෙනුයි මේ හදුන්වාදීම කරන්නෙ. LINQ කියල කියන්නෙ .Net Language INtegrated Query කියන අදහසින්. LINQ බැදිලා තියෙන්නෙ C# language එකත් සමගයි. C# වලින් code කරද්දි සාම්ප්‍රදායික SQL යොදා ගන්නවට වඩා LINQ යොදා ගත්තොත්, programming languages අතර පවතින නොගැලපීම්(impedence mismatch) දුරු කර ගන්න පුලුවන්.ගොඩක් data sources තියෙන වෙලාවට එකම Querying interface එකක් පාවිච්චි කරන්නත් පුලුවන්.LINQ වලට ඇබ්බැහි වූවන් පවසන ආකාරයට නම් එය SQL වලට වඩා සරලයි. පැහැදිලියි. ඒ විතරක්ද, එය අයිති වන්නේ උසස් ගණයේ language එකක් හැටියට. SQL සහ LINQ හරියට C++ සහ C# වගේ.
                           සමහර වෙලාවට C++ උචිත වෙන අවස්ථා තියෙනව වගෙ SQL හොද වෙන වෙලාවලුත් තියෙනව. SQL කියන්නෙ 1974 දි සොයා ගත්ත පරන language එකක්. එය වරින් වර අලුත් දේවල් එකතු කර ගනිමින් ලොකු ගමනක් ආවත් නැවත redesign වීමක් සිදු වුනේ නැහැ.  ඒ නිසා සමහර වෙලාවට අනවශ්ය ලෙස පැටලිලි සහගත වෙන වෙලාවල් තිබෙනවා.
හිතන්න ඔබට මේ වගෙ query එකක් ලියන්න වෙනවා කියලා.මේකෙ කිසිම ගැටලුවක් නැහැ.


SELECT UPPER(Name)
FROM Customer
WHERE Name LIKE 'A%'
ORDER BY Name

ඔබට එකවරම ඕන වෙනවා 21-30 දක්වා පේලි වල විතරක් ප්‍රතිඵල ලබා ගන්න.එතකොට ලියන්න වෙන්නෙ මෙහෙම.


SELECT UPPER(Name) FROM
(
   SELECT *, RN = row_number()
   OVER (ORDER BY Name)
   FROM Customer
   WHERE Name LIKE 'A%'
) A
WHERE RN BETWEEN 21 AND 30
ORDER BY Name

SQL Server 2005 වලට වඩා පරන db වලට support කරන්න නම්, code එකට තවත් දෙවල් add වෙන්න ඕනෙ.

SELECT TOP 10 UPPER (c1.Name)
FROM Customer c1
WHERE
   c1.Name LIKE 'A%'
   AND c1.ID NOT IN
   (
      SELECT TOP 20 c2.ID
      FROM Customer c2
      WHERE c2.Name LIKE 'A%'
      ORDER BY c2.Name
   )
ORDER BY c1.Name

නමුත් ඔබ මේ දේම LINQ වලින් ලියුවොත් ඕන වෙන්නෙ මෙච්චරයි.


var query =
   from c in db.Customers
   where c.Name.StartsWith ("A")
   orderby c.Name
   select c.Name.ToUpper();

var thirdPage = query.Skip(20).Take(10);

කොයිතරම් සරලද, පැහැදිලිද?? මම මේ post එකෙන් කතා කලේ එක ප්‍රයෝජනවත් ලක්ෂණයක් ගැන විතරයි.




Google කරලා LINQ ගැන විස්තර හොයල බලන්න...

සීත ගගුල කරගෙන යන්නෙ ඔයාල දෙන දිරි ගැන්වීම් වලින්. BLOG එකට කැමති නම් follower කෙනෙක් වෙන්න අමතක කරන්නත් එපා.

Monday, March 19, 2012

QR කේත.....[.QR codes].....මොනවද මේ කොටු කොටු??

දැන් දැන් ලංකාවේත් ප්‍රසිද්ධ වෙලඳ ආයතන විසින් තමන්ගේ වෙලඳ දැන්වීම් වල යොදා ගන්නා මේ සන්කෙතය ඔබට ප්‍රශ්නයක් වී ඇති. විශේෂයෙන්ම ඔය mobile tele communication ක්ශේත්‍රයේ ප්‍රචාරන කටයුතු වල තමයි මම නම් වැඩිපුරම දැකලා තියෙන්නෙ.ප්‍රධාන වශයෙන්ම මෙහි අරමුණ තමන්ගේ භාණ්ඩ හා සේවා පිළිබඳ පාරිභෝගිකයන්ට තොරතුරු ලබා දීමයි. විශේෂයෙන්ම තමන්ගේ වෙබ් අඩවි වල QR code යොදා ගැනීමෙන් එම අඩවි නිතර නිතර update වන ඒවා ලෙසයි search engine විසින් හදුනා ගන්නේ. එමනිසා එය භාණ්ඩ පාරිභෝගිකයන් වෙතට ගෙන යාමට හොද ක්‍රමයක්.
          QR code යනු quick response code යන්නයි.මේවායේ තොරතුරු ගබඩා කොට තිබෙනවා. වෙබ් අඩවි වල විතරක් නොවේ, පුවත් පත් දැන්වීම් වල, සඟරා වල, බිල් පත් වල,එහෙමත් මෙවා දක්නට ලැබෙනවා.කෙසේ නමුත් QR code එකකින් කියැවෙන තොරතුරු ලබා ගැනීමට නම් ඔබට Smart phone එකක් තිබිය යුතුයි.මේ නිසාම වෙන්න ඇති ලංකාවේ තවමත් මේ තාක්ෂනය ගැන කවුරුත් එතරම් දන්නෙ නැත්තෙ. නමුත් ඔබට smart phone එකක් තිබෙනවා නම් ,කලයුත්තෙ බොහොම සුලු දෙයක් විතරයි. QR code reader එකක් install කර ගන්න මෙන්න මේ වගෙ site එකකින්. 
                                Kawya 



පහත video එකෙන් පෙන්වන්නේ ඒ විදියට කොහොමද QR code එකක් read කර ගන්නෙ කියල.

ඔබට ඕනෙ නම් T- shirt එකක print කරල තියෙන QR code එකක් වුනත් මේ ආකාරයට කියවන්න පුලුවන්. එක අතකින් මේ තාක්ෂණයත් barcode reader  එකක වගේම වුනත් නිකම්ම ඉලක්කම් ටිකකට වඩා ලොකු තොරතුරු ප්‍රමාණයක් මෙමගින් ලබා ගන්න පුලුවන්.
කොයිතරම් සරල පහසු කාර්යක්ශම තොරතුරු සැපයීමේ ක්‍රමයක්ද නේද??  
ව්යාපාර වලට නම් තමන් කොයිතරම් ඉක්මනට නවීන තාක්ශණය සමග සමීප වෙනවද කියන එක customers ලට පෙන්නන්න හොද අවස්ථාවක් ඒක.  හැකියාවක් ලැබුනු දවසක ඔයාලත් මේ තාක්ෂනයේ ප්‍රයෝජනය අත් විදල බලන්න අමතක කරන්න එපා. 

මේ post එකට කැමති නම් සීත ගඟුලෙ follower කෙනෙක් වෙන්නත් අමතක කරන්න එපා.