View Full Version : سوال: مشکل در استفاده از بانک خارجی
ghamgin
پنج شنبه 06 خرداد 1395, 10:04 صبح
سلام من در برنامه ام میخوام از بانک خارجی استفاده کنم تمام مراحل و کدهای این تاپیک
http://www.barnamenevis.org/showthread.php?441406-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-SQLite-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%D8%A7%D8%AF%D9%87-%D8%A8%D8%AF%D9%88%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A8%D9%87-%DA%A9%D9%84%D8%A7%D8%B3-DataBaseHelper
و این سایت
http://stackoverflow.com/questions/14232181/how-to-connect-external-sqlitedatabase-to-android-application
رو بکار بردم اما وقتی از برنامه خروجی میگیرم و روی گوشی نصب می کنم میخواهم داده ها ی از قبل ذخیره شده رو بخونم از بانک میگه داده ای وجود نداره و وقتی داده ای ثبت کنم قابل خوندن هست انگار برنامه خودش از اول بانک رو میسازد و خالی هست
خواهش میکنم یکی کمک کنه
ممنون
ghamgin
دوشنبه 10 خرداد 1395, 10:11 صبح
کسی نیست کمک کنه؟ خواهش میکنم بد گیر کردم...خواهشا یکه بگه
vahid-p
سه شنبه 11 خرداد 1395, 17:45 عصر
کدتون رو بذارید
ghamgin
چهارشنبه 12 خرداد 1395, 08:41 صبح
package com.example.myapp1;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Environment;
import android.util.Log;
public class NahaiDB extends SQLiteOpenHelper{
private static String DB_PATH = "/data/data/com.example.myapp1/databases/";
private static String DB_NAME = "DB1.db";
private static final String DATABASE_TABLE = "info";
private SQLiteDatabase myDataBase;
private final Context myContext;
public static final String number= "number";
public static final String CITY = "nam";
//SQLiteDatabase db;
public static boolean databaseexsit;
public NahaiDB(Context context) {
super(context, DB_NAME, null, 1);
this.myContext = context;
}
public void createDataBase() throws IOException{
{
boolean dbExist = checkDataBase();
if(dbExist){
//do nothing - database already exist
Log.e("???????????", "kari nakon");
}else{
this.getReadableDatabase();
try {
copyDataBase();
Log.e("???????????", "copy shod");
}
catch (IOException e) {
Log.e("???????????", "eror copy");
throw new Error("Error copying database");
}
}
}
}
ghamgin
چهارشنبه 12 خرداد 1395, 08:42 صبح
سلام
من بانکم رو یکبار با نام DB1.db در پوشه asset و یکبار هم زیپ شده در پوشه asset با نام DB1.db.zip قرار دادم و یکبار هم در پوشه asset یک پوشه با نام databases ایجاد کردم و فایل های بالا رو داخلش گذاشتم اما کد ها همون که در پیام قبل بهتون گفتم هست بازم جواب نداد و در موقع نصب بانک رو از اول میسازه ممنون میشم کمک کنید. دیوانه ام کرده..
ahmad.t1100
چهارشنبه 12 خرداد 1395, 08:59 صبح
دوست عزیز این دستور ربطی به پوشه مورد نظر نداره.شما بانک اطلاعاتی رو داخل پوشه asset میذاری اما دستوری که نوشتی یک بانک جدید ایجاد می کنه
ahmad.t1100
چهارشنبه 12 خرداد 1395, 09:00 صبح
واسه همینه پروژه که ایجاد میشه بدون توجه به بانک اطلاعاتی قرارداده شده در پروژه یک بانک جدید ایجاد میشه و داده ها باید از نو وارد بشوند
ghamgin
چهارشنبه 12 خرداد 1395, 09:21 صبح
ممنون از پاسخگوی تون
خوب من چکار کنم؟ هر کدی میزنم، هرچه سرچ میکنم نميشه. .
شما کدش رو بهم میدید؟
ممنون
ghamgin
چهارشنبه 12 خرداد 1395, 09:22 صبح
ممنون میشم نمونه رو همین جا آپ کنید
ghamgin
پنج شنبه 13 خرداد 1395, 07:09 صبح
یعنی هیچ کسی اینجا نمونه مشکل از کجاست؟؟؟؟؟
ghamgin
پنج شنبه 13 خرداد 1395, 07:10 صبح
یعنی هیچ کسی اینجا نمیدونه مشکل از کجاست؟؟؟؟؟
ghamgin
جمعه 14 خرداد 1395, 06:13 صبح
چی شد کد هم گذاشتم
بابا یکی راهنمایی کنه لطفا..
vahid-p
شنبه 15 خرداد 1395, 17:48 عصر
طبق چیزی که تو اون تاپیک دیدم اگر از https://github.com/jgilfelt/android-sqlite-asset-helper/ استفاده میکنید، باید در پوشه main برنامتون یعنی src/main این مسیر رو داشته باشید:
assets/databases/DB1.db.zip
که خودش آدرس دیتابیس رو اینطور به دست میاره (خط 107 و 109 از https://github.com/jgilfelt/android-sqlite-asset-helper/blob/master/library/src/main/java/com/readystatesoftware/sqliteasset/SQLiteAssetHelper.java):
mDatabasePath = context.getApplicationInfo().dataDir + "/databases";
و نه به صورت /data/data/ و... که خود اندروید استدیو هم در مورد این هشدار میده.
ولی شما از کلاس DataBaseHelper استفاده کردید که در اون پستی که در StackOverFlow یکی از پست ها بود، لزوما نمیدونید درست باشه. تازه گفتم که مشکلاتی از قبیل نحوه آدرس دهی /data/data/... هم داره که توصیه میکنم از همون android-sqlite-asset-helper استفاده کنید (اگر مبتدی هستید، از اول بر اساس یک روش یا آموزش پیش برید و همه چیز رو تلفیق نکنید. میتونید دوباره کد ها رو بنویسید).
چیزی که شما نوشتید مثل هیچ کدومشون نبود.
(ضمنا برای یکی بتونه برنامتون رو تست کنه یا بخواد اطلاعات بیشتری داشته باشه برای راهنمایی کردن، خصوصا که اینجا از کدهای دیگران استفاده کردید و خودتون هم دقیق در جریان کد نیستید، کل سورس رو آپلود کنید نه فقط یک یا چند کلاس نامرتبط با هم و ناقص). شما دو تا تاپیک هم معرفی کردید که یعنی اگر کسی بخواد راهنمایی کنه باید بره اونها رو بخونه؟!!!
ghamgin
یک شنبه 16 خرداد 1395, 10:16 صبح
سلام من روش دوتا لینکی که در پست اول گفتم رو کنار گذاشتم و کلا از روش پست آخرم یعنی آخرین کدی که فرستادم استفاده کردم اما در اجرا رو گوشی هیچ خطایی نداره پیام کپی موفقیت آمیز هم میده اما هنگام فراخوانی داده هیچی لود نميشه و خطایی هم ندارم
حالا شما میگید آدرس کپی رو چطور بدم؟ میشه بیشتر راهنمایی کنید یا نمونه بزارید؟
ممنون میشم
vahid-p
یک شنبه 16 خرداد 1395, 15:46 عصر
همون لینک اولی که دادی آموزش android-sqlite-asset-helper رو داشت که خیلی مفیده.
این یه آموزش ساده: http://www.kelidestan.com/keys/keys.php?key=325
و اینم یه نمونه کد (که از تاپیک http://barnamenevis.org/showthread.php?448468-%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%87-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-sqlite) پیدا کردم، و روی شبیه ساز تست کردم و به خوبی کار میکنه: http://www.mediafire.com/download/f53tea50w0504b1/listview+custom.rar
همین کد رو پیوست هم کردم اگر لینک خراب بود بشه دانلود کرد.
140708
ghamgin
دوشنبه 17 خرداد 1395, 07:25 صبح
به دنیا ممنون از وقتی که گذاشتید چک میکنم خبر میدم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.