অ্যান্ড্রয়েড এসকিউএলাইটের ডাটাবেস সংস্করণটি কোথায় সঞ্চয় করে?


88

SQLite ডাটাবেস ফাইলের মধ্যে অ্যান্ড্রয়েড যেখানে ডাটাবেস সংস্করণ সংরক্ষণ করে তা সন্ধান করতে আমি অক্ষম। ডাটাবেস সংস্করণটি ঠিক কোথায় সংরক্ষণ করা হয়?

উত্তর:


188

ব্যবহার করে আপনি সংস্করণটি পড়তে পারেন android.database.sqlite.SQLiteDatabase.getVersion()

অভ্যন্তরীণভাবে, এই পদ্ধতিটি এসকিউএল বিবৃতি " PRAGMA user_version" কার্যকর করে। আমি এটি অ্যান্ড্রয়েড উত্স কোড থেকে পেয়েছি ।

ডাটাবেস ফাইলে, সংস্করণটি বাইট অফসেটে সংরক্ষণ করা হয় 60 ডাটাবেস ফাইলের ডাটাবেস শিরোনামে , 'ব্যবহারকারী কুকি' ক্ষেত্রে।


এটি কার্যকর ছিল, তবে আমার প্রশ্নটি এই সংস্করণ তথ্যটি ফাইল সিস্টেমে কোথায় সঞ্চয় করা হয় (বা ডাটাবেস ফাইলের মধ্যে থাকতে পারে)?
ভূপস

4
এবং পড়তে এবং সংশোধন করার জন্য এটি stackoverflow.com/questions/8030779/...
Yaroslav Mytkalyk

ডাটাবেস ফাইলটিতে ডাটাবেস সংস্করণটি কীভাবে স্থির থাকে?
xuehui

@xuehui উত্তরটি দেখুন: ডাটাবেস ফাইলে বাইট 60
থমাস মুলার

8

যদি কেউ ফাইল থেকে সংস্করণ পড়ার জন্য জাভা কোডের সন্ধান করছেন:

private static int getDbVersionFromFile(File file) throws Exception
{
    RandomAccessFile fp = new RandomAccessFile(file,"r");
    fp.seek(60);
    byte[] buff = new byte[4];
    fp.read(buff, 0, 4);
    return ByteBuffer.wrap(buff).getInt();
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.