View Full Version : پاک کردن پایگاه SQL بعد از ایجاد شدن آن
alireza142
یک شنبه 11 مرداد 1394, 13:53 عصر
سلام
چطور میشه با کدنویسی یک پایگاه SQL از قبل ایجاد شده درون برنامه رو کلا پاک کرد؟ در نسخه جدید برنامه ام نیاز دارم تا بانک قبلی پاک بشه و این جدیده بشینه جاش.
با این فرمان sql زدم، اما خطا میگیره :
DROP DATABASE database_name
golbafan
یک شنبه 11 مرداد 1394, 14:02 عصر
سلام
USE master
IF EXISTS(select * from sys.databases where name='yourDBname')
DROP DATABASE yourDBname
ali_khodayar
یک شنبه 11 مرداد 1394, 14:34 عصر
با اجازه از
alireza142 (http://barnamenevis.org/member.php?330353-alireza142) اگر میشه من هم یه سوال در مورد دیتابیس بپرسم که دیگه یه تاپیک جدید ایجاد نکنم.
چطوری میشه به فایل بانک برنامه دسترسی پیدا کرد. میخوام از توی گوشی بانک رو روی کامپیوتر کپی کنم. اما فایلی با نام بانکی که ساختم اصلأ وجود نداره .
کار خاصی باید انجام داد؟
golbafan
یک شنبه 11 مرداد 1394, 18:17 عصر
میخوام از توی گوشی بانک رو روی کامپیوتر کپی کنم. اما فایلی با نام بانکی که ساختم اصلأ وجود نداره .
کار خاصی باید انجام داد؟
اگر دیتابیس شما تحت مموری باشه (همون لحظه ایجاد بشه و با بستن برنامه از بین بره) حرف شما صحیحه
اما اگر بصورت فایل باشه حتما حتما حتما یه جایی ذخیره شده
حالا یا توی sd کارت و یا در خود گوشی
ali_khodayar
دوشنبه 12 مرداد 1394, 07:40 صبح
ممنونم دوست عزیز بابت پاسختون.
خب من چطوری باید متوجه بشم که تحت مموری هست یا خیر؟ کجا تعیین میشه؟؟
امکانش هست این رو هم بگید که کدوم روش بهتر هست و مزایای و معایب هرکدوم چیه؟؟
golbafan
دوشنبه 12 مرداد 1394, 08:03 صبح
اگر خودتون برنامه رو نوشتین که مشخصه دیگه دیتابیس کجاست!
تحت مموری معمولا سرعت بالاتری داره اما ذخیره نمیشه (مثلا برای جداول temp ازش استفاده میشه)
حالت دیگر هم مدل فایل هست که ذخیره میشه اما سرعت کمتری داره
ali_khodayar
دوشنبه 12 مرداد 1394, 08:52 صبح
برنامه رو خودم نوشتم. اما من نمیدونستم که چنین روش هایی وجود داره .
کدی که نوشتم رو اگر میشه ببینید بهم بگید که توی مموری ذخیره میشه و یا اینکه بصورت فایل هست.
public class SchemaHelper extends SQLiteOpenHelper{
Context context;
SharedPreferences sharedpreferences;
private static final String DATABASE_NAME = "SAMiN_data.db";
private static final int DATABAS_VERSION = 1;
public SchemaHelper(Context context) {
super(context, DATABASE_NAME, null, DATABAS_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CreateTables.createP_REMARK_TABLE());
db.execSQL(CreateTables.createP_SETTING_TABLE());
Log.i("SAMiN_DB", "onOpen SQLiteDatabase");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i("SAMiN_DB", "onUpgrade SQLiteDatabase from " + oldVersion + " to " + newVersion);
db.execSQL("Drop table if exists " + P_RemarkTable.TABLE_NAME);
db.execSQL("Drop table if exists " + P_SettingTable.TABLE_NAME);
onCreate(db);
}
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i("SAMiN_DB", "onDowngrade SQLiteDatabase from " + oldVersion + " to " + newVersion);
}
@Override
public void onOpen(SQLiteDatabase db) {
Log.i("SAMiN_DB", "onOpen SQLiteDatabase");
super.onOpen(db);
}
}
البته من کد رو خلاصه کردم . اگر قسمتی دیگه لازمه بگید تا کدش رو قرار بدم.
golbafan
دوشنبه 12 مرداد 1394, 09:10 صبح
سلام
ظاهراً که فایل هست -> SAMiN_data.db
در حالت دیباگ بعد از خط زیر
private static final String DATABASE_NAME = "SAMiN_data.db";
ببین دیتابیس رو پیدا میکنی یا نه؟
چون بهش مسیر ندادی احتمالا میره در روت اندروید میشینه
بهش مسیر بده
alireza142
دوشنبه 12 مرداد 1394, 10:29 صبح
سلام
USE master
IF EXISTS(select * from sys.databases where name='yourDBname')
DROP DATABASE yourDBname
ممنون از راهنمایی تون.
لطفا درمورد نحوه کاربستش هم یه توضیح اجمالی بفرمایید.
این کد هایی که نوشتید، فرمان sql هست یا یک متد که در همون کلاس DatabaseHandler باید قرارش داد؟
ali_khodayar
چهارشنبه 14 مرداد 1394, 09:53 صبح
سلام
ظاهراً که فایل هست -> SAMiN_data.db
در حالت دیباگ بعد از خط زیر
private static final String DATABASE_NAME = "SAMiN_data.db";
ببین دیتابیس رو پیدا میکنی یا نه؟
چون بهش مسیر ندادی احتمالا میره در روت اندروید میشینه
بهش مسیر بده
امکانش هست توضیح بدید که چطوری باید به دیتابیس آدرس بدیم؟؟ آخه دیتابیس من از قبل ساخته شده . میشه مسیر جدید داد؟ لازمه که قبل از مسیر دادن دیتابیس رو کلآ پاک کنم و دوباره ایجادش کنم؟
(البته بعد از اینکه جواب آقا alireza142 (http://barnamenevis.org/member.php?330353-alireza142)
داده شد)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.