2012-06-18 17 views
5

मैं एंड्रॉइड एप्लिकेशन में अरबी डेटाबेस बनाने की कोशिश कर रहा हूं और देखना चाहता हूं कि मैं इसे कैसे प्राप्त कर सकता हूं?अरबी डेटा डालें और चुनें एंड्रॉइड SQLite

मुझे पता है कि मुझे एन्कोडिंग और सामान करना होगा। लेकिन मैं जानना चाहता हूं कि किसी ने वास्तव में गैर-अंग्रेजी डेटाबेस बनाने की कोशिश की है और मुझे सर्वोत्तम दृष्टिकोण करने में मदद करें।

+0

यू अंग्रेज़ी करने के लिए है कि अरबी डेटा परिवर्तित नहीं कर सकते और स्टोर कर सकते हैं कि डेटाबेस में? मुझे बस लगता है .... – Aamirkhan

उत्तर

1

मैं एन्कोडिंग के बिना ग्रहण से यह कर सकता है, अगर मैं UTF-8 के रूप में फाइल को सेव करें और अरबी डेटा सामान्य रूप से लिखना ..

3

तो SQLite सबसे अच्छा तरीका बनाने के लिए SQLiteOpenHelper का उपयोग करें और है कि SQLiteOpenHelper से विस्तार को लागू करता है onCreate(), विधि और onUpgrade() विधि अपने ही वर्ग पैदा करते हैं।

उदाहरण डेटाबेस बनाने के लिए कैसे:

public class DatabaseHandler extends SQLiteOpenHelper { 

    private static final String DATABASE_NAME = "basic_login_system_database"; 
    protected static final String USER_TABLE_NAME = "User"; 
    protected static final int DATABASE_VERSION = 1; 

    protected static final String KEY_ID = "id"; 
    protected static final String KEY_NAME = "name"; 
    protected static final String KEY_SURNAME = "surname"; 
    protected static final String KEY_PASSWORD = "password"; 
    protected static final String KEY_EMAIL = "email"; 
    protected static final String KEY_ADDRESS = "adress"; 
    protected static final String KEY_AGE = "age"; 


    public DatabaseHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    }  

    public void onCreate(SQLiteDatabase db) { 
     String CREATE_USER_TABLE = "CREATE TABLE " + USER_TABLE_NAME + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
       + KEY_NAME + " TEXT NOT NULL, " 
       + KEY_SURNAME + " TEXT NOT NULL, " 
       + KEY_PASSWORD + " TEXT NOT NULL, " 
       + KEY_EMAIL + " TEXT UNIQUE NOT NULL, " 
       + KEY_ADDRESS + " TEXT, " 
       + KEY_AGE + " TEXT" + ")"; 
     db.execSQL(CREATE_USER_TABLE); 
    } 

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     String DELETE_USER_TABLE = "DROP TABLE IF EXISTS " + USER_TABLE_NAME; 
     db.execSQL(DELETE_USER_TABLE); 
     onCreate(db);  
    } 
} 

और तुम Arabic पात्रों के लिए एन्कोडिंग सेट करना होगा क्योंकि परोक्ष यह utf-8 पर सेट है।

private static final String ENCODING_SETTING = "PRAGMA encoding ='windows-1256'";

और आप इसे अपने onOpen() विधि में निर्धारित किया है।

@Override 
public void onOpen(SQLiteDatabase db) { 
    if (!db.isReadOnly()) { 
     db.execSQL(ENCODING_SETTING); 
    } 
} 

फिर अपने डेटाबेस से डेटा पुनः प्राप्त करने के लिए बस के तरीकों rawQuery() या query() साथ Cursor का उपयोग करें।

उदाहरण:Cursor c = db.raQuery(SELECT_STATEMENT, null);

डालने डेटा के लिए SQLiteDatabase की insert() विधि का उपयोग करें।

संबंधित मुद्दे