Project (51) Sqlite database (ဓမၼပဒ)
Scripter မွာ Sqlite database အသံုးျပဳ ပံုကို နမူနာ ေရးျပထားပါတယ္။
အသံုးျပဳ နည္း
==========
၁။ database file ကို add assets file နဲ႔ add ထားပါ။ အခုနမူနာမွာ dhamma.sqlite database file ကို သံုးထားပါတယ္။ ဒီ database ထဲမွာ dhammapada ဆိုတဲ့ table ရိွပါတယ္။ column အမည္ေတြက rowid, col_1, col_2, col_3, col_4 ေတြ ျဖစ္ပါတယ္။ rowid ေတြကေတာ့ ဓမၼပဒ စာပိုဒ္ နံပါတ္ေတြ ျဖစ္ၿပီး 1 to 424 ရွိပါတယ္။ col_2 ကေတာ့ ဓမၼပဒ ျမန္မာလို စာပိုဒ္မ်ား၊ col_4 ကေတာ့ အဂၤလိပ္လို စာပိုဒ္မ်ား ျဖစ္ပါတယ္။
၂။ ဒီ database file ကို FileDirAssets ကေန FileDirInternal ဆီကို ကူးထုတ္ရပါတယ္။
FileCopy(FileDirAssets,"dhamma.sqlite",FileDirInternal,"dhamma.sqlite")
၃။ database ထဲက dhammapada table ထဲကေန ျမန္မာလို စာပိုဒ္ col_2 ကို ရွာေဖြဖို႔ query တည္ေဆာက္ရပါတယ္။ ဒီဥပမာ မွာေတာ့ edittext1 နဲ႔ ရွာခ်င္တဲ့ စကားလံုးကို ရယူတယ္။ edittext2 နဲ႔ စာပိုဒ္နံပါတ္ကို ရယူတယ္။ query တည္ေဆာက္မႈကို နည္းလမ္း ၂မ်ိဳးနဲ႔ ဥပမာ ျပထားျခင္း ျဖစ္ပါတယ္။
qq="SELECT col_2 FROM dhammapada WHERE col_2 LIKE '%" & GetText("edt1") & "%'"
qq="SELECT col_2 FROM dhammapada WHERE rowid=" & GetText("edt2")
၄။ အထက္မွာ တည္ေဆာက္ထားတဲ့ query string နဲ႔ database ကို query လုပ္ယူပါတယ္။ ဒါဆိုရင္ ရလာတဲ့ ရလဒ္ record ေတြကို cursor တခုအေနနဲ႔ ျပန္ေပးပါတယ္။ ဒီ cursor ကို "cursor1" ဆိုတဲ့အမည္နဲ႔ ေခတၱ သိမ္းလိုက္ပါတယ္။
SQL_execquery(qq,"cursor1")
၅။ ရလဒ္ cursor1 မွာ record ရွိရင္ label1 မွာ display လုပ္ျပခိုင္းပါတယ္။
If (Cursor_getrowcount("cursor1")>0) Then
txt=""
For i=0 to Cursor_getrowcount("cursor1")-1
Cursor_setposition("cursor1",i)
txt=txt & Cursor_getString("cursor1","col_2") & crlf & crlf
Next
.....
SetText("lb1",txt)
AdjustlabelHeight("lb1")
SetHeight("pnl",GetHeight("lb1"))
================
Project sql.zip ဖိုင္ကို download လုပ္ဖို႔ link ေပးထားပါတယ္။
Download project zip file here
===========
ေနာက္ထပ္ project အေနနဲ႔ အသံထြက္ေပးႏိုင္တဲ့ အဂၤလိပ္ ျမန္မာ dictionary ဖန္တီးနည္းကို တင္ေပးပါမယ္။
Scripter မွာ Sqlite database အသံုးျပဳ ပံုကို နမူနာ ေရးျပထားပါတယ္။
အသံုးျပဳ နည္း
==========
၁။ database file ကို add assets file နဲ႔ add ထားပါ။ အခုနမူနာမွာ dhamma.sqlite database file ကို သံုးထားပါတယ္။ ဒီ database ထဲမွာ dhammapada ဆိုတဲ့ table ရိွပါတယ္။ column အမည္ေတြက rowid, col_1, col_2, col_3, col_4 ေတြ ျဖစ္ပါတယ္။ rowid ေတြကေတာ့ ဓမၼပဒ စာပိုဒ္ နံပါတ္ေတြ ျဖစ္ၿပီး 1 to 424 ရွိပါတယ္။ col_2 ကေတာ့ ဓမၼပဒ ျမန္မာလို စာပိုဒ္မ်ား၊ col_4 ကေတာ့ အဂၤလိပ္လို စာပိုဒ္မ်ား ျဖစ္ပါတယ္။
၂။ ဒီ database file ကို FileDirAssets ကေန FileDirInternal ဆီကို ကူးထုတ္ရပါတယ္။
FileCopy(FileDirAssets,"dhamma.sqlite",FileDirInternal,"dhamma.sqlite")
၃။ database ထဲက dhammapada table ထဲကေန ျမန္မာလို စာပိုဒ္ col_2 ကို ရွာေဖြဖို႔ query တည္ေဆာက္ရပါတယ္။ ဒီဥပမာ မွာေတာ့ edittext1 နဲ႔ ရွာခ်င္တဲ့ စကားလံုးကို ရယူတယ္။ edittext2 နဲ႔ စာပိုဒ္နံပါတ္ကို ရယူတယ္။ query တည္ေဆာက္မႈကို နည္းလမ္း ၂မ်ိဳးနဲ႔ ဥပမာ ျပထားျခင္း ျဖစ္ပါတယ္။
qq="SELECT col_2 FROM dhammapada WHERE col_2 LIKE '%" & GetText("edt1") & "%'"
qq="SELECT col_2 FROM dhammapada WHERE rowid=" & GetText("edt2")
၄။ အထက္မွာ တည္ေဆာက္ထားတဲ့ query string နဲ႔ database ကို query လုပ္ယူပါတယ္။ ဒါဆိုရင္ ရလာတဲ့ ရလဒ္ record ေတြကို cursor တခုအေနနဲ႔ ျပန္ေပးပါတယ္။ ဒီ cursor ကို "cursor1" ဆိုတဲ့အမည္နဲ႔ ေခတၱ သိမ္းလိုက္ပါတယ္။
SQL_execquery(qq,"cursor1")
၅။ ရလဒ္ cursor1 မွာ record ရွိရင္ label1 မွာ display လုပ္ျပခိုင္းပါတယ္။
If (Cursor_getrowcount("cursor1")>0) Then
txt=""
For i=0 to Cursor_getrowcount("cursor1")-1
Cursor_setposition("cursor1",i)
txt=txt & Cursor_getString("cursor1","col_2") & crlf & crlf
Next
.....
SetText("lb1",txt)
AdjustlabelHeight("lb1")
SetHeight("pnl",GetHeight("lb1"))
================
Project sql.zip ဖိုင္ကို download လုပ္ဖို႔ link ေပးထားပါတယ္။
Download project zip file here
===========
ေနာက္ထပ္ project အေနနဲ႔ အသံထြက္ေပးႏိုင္တဲ့ အဂၤလိပ္ ျမန္မာ dictionary ဖန္တီးနည္းကို တင္ေပးပါမယ္။