MYSTERY ZILLION တွင် English သို့မဟုတ် Unicode ဖြင့်သာ အသုံးပြုခွင့်ရှိသည်။ ဇော်ဂျီ ၊ ဧရာ စသည်တို့ကို အသုံးပြုခွင့် မရှိ။ Unicode fonts များမှာ Mon3,Yunghkio, Myanamr3 စသည်များ အသုံးပြုနိုင်သည်။ Unicode Guide ကို ဒီမှာ Download ချပါ။ Zawgyi to Unicode Converter
Don't share ebook or software if nobody request. You can find free book websites on here. We are welcome for discussion or asking question instead.

Compact MS Access Database From C#

edited April 2008 in C#
MS Access database တွေမှာ file size limit 2gb ထိပဲ လုပ်လို့ရတဲ့ limit ရှိပါတယ်..
အဲဒါကလည်း record တွေများမှမဟုတ်ပဲ transaction တွေများရင်လည်း size ကြီးလာပြီး 2gb limit ကိုရောက်သွားတတ်ပါတယ်.. အဲဒီအခါမှာ Tools menu ထဲကနေသွားပြီး Compact and Repair ဆိုတာကို ပြန်ပြန်လုပ်ရပါတယ်..
ကျွန်တော်တို့ MS Access database ကို အပီအပြင်သုံးကြတဲ့ programmer တွေဆိုရင် ဒီကိစ္စကို ခဏခဏကြုံရပါတယ်.. auto အလုပ်လုပ်ခိုင်းဖို့ရေးထားတဲ့ program တစ်ခုကြောင့် MS Access database က 2gb ကိုကျော်သွားပြီဆိုရင် invalid argument ဆိုတဲ့ error ကြီးပဲရပါတော့တယ်.. ဒါဆို ဒုက္ခရောက်ပါပြီ.. compact and repair မှမလုပ်ရင်သုံးမရတော့ပါဘူး..
ဒီပြဿနာကို coding ကနေဖြေရှင်းဖို့ လျှောက်ရှာရင်းနဲ့ ဒီကုဒ်လေးတွေ့ပြီး (Codeproject ကထင်ပါတယ်.. :39:) လိုအပ်သလိုပြန်ပြင်ပြီး သုံးနေတာ တော်တော်အဆင်ပြေပါတယ်.. အဲ.. C# နဲ့ပါ.. လိုအပ်တဲ့လူတွေ အသုံး၀င်နိုင်အောင် ဒီမှာပြန်တင်ထားပေးလိုက်ပါတယ်..
        public void CompactAccessDB(string FileNameToCompact)
        {
            object[] oParams;
            object objJRO = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));

            //filling Parameters array
            //change "Jet OLEDB:Engine Type=5" to an appropriate value
            // or leave it as is if you db is JET4X format (access 2000,2002)
            //(yes, jetengine5 is for JET4X, no misprint here)

            oParams = new object[] {"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _dbPath, 
                                    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\tempdb.mdb;" +
                                    "Jet OLEDB:Engine Type=5"};

            //invoke a CompactDatabase method of a JRO object
            //pass Parameters array

            objJRO.GetType().InvokeMember("CompactDatabase",
                System.Reflection.BindingFlags.InvokeMethod,
                null,
                objJRO,
                oParams);

            //database is compacted now
            //to a new file C:\\tempdb.mdw
            //let's copy it over an old one and delete it

            System.IO.File.Delete(FileNameToCompact);
            System.IO.File.Move("C:\\tempdb.mdb", FileNameToCompact);

            //clean up (just in case)

            Marshal.ReleaseComObject(objJRO);
            objJRO = null;
        }
Sign In or Register to comment.