رفتن به مطلب

آپدیت دیتابیس بصورت آنلاین


sganji

ارسال‌های توصیه شده

salam merci az amozeshet faghat ta jaei ke midonam to host nemishe db  upload kard.shayam man balad nistam ono yekam tozih midi

 

دوست عزیز,

ضمن تایید حرف آقای ایزدی

جواب سوالتون:

طبق تحقیقی که من کردم توی بعضی از هاست هت نمیشه فایل با پسوند db آپلود کرد.

مشکلی نست!شما در کامپیوتر خودتون پسوند فایل رو بردارید مثلا data.db رو بکنید : data

و بعد روی هاست خودتون آپلود کنید.

بعد توی کپی کردن در بخش اندروید , پسوند رو اضافه کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • پاسخ 59
  • ایجاد شده
  • آخرین پاسخ

درود

دوست عزیز و گرامی

شما کسی رو اینجا دارید میبینید که Finglish تایپ کنه که شما نفر دومش باشید؟  :)

بند 2.1 قوانین انجمن رو مطالعه بفرمایید  :gol:

در صورت تکرار از انجمن اخراج خواهید شد

با تشکر

بروی چشم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 4 هفته بعد...

با سلام و عرض خسته نباشید.

درخدمت شما هستم با یه آموزش متنی!

باشد که جواب سوالات برخی دوستان داده شود و رستگار شوم!

در این آموزش یاد میگیریم که چطور دیتابیس خود را بصورت آنلاین آپدیت کنیم...مثلا در برنامه یه دکمه با عنوان آپدیت وجود داشته باشد که با زدن آن یک دیتابیس را از اینترنت با فرمت db دانلود کند و جایگزین دیتابیس فعلی (مثلا در internal )بکند.

ابتدا کتابخانه HttpUtils2 را فعال کنید.

سپس در رویداد دکمه آپدیت بنویسید:

Sub btnUpdate_Click
Dim ht As HttpJob
ht.Initialize("update",Me)
ProgressDialogShow("updating")
ht.Download("http://www.example.com/databases/data.db")
End Sub
به جای http://www.example.com/databases/data.db آدرس دیتابیس خود را که قبلا در هاست خود آپلود کرده اید را بنویسید.

سپس یک ساب بنویسید:

Sub JobDone(Job As HttpJob)
ProgressDialogHide
 If Job.Success Then
  If Job.JobName = "update" Then
   Dim ou As OutputStream
   File.Delete(File.DirInternal,"data.db")
   ou = File.OpenOutput(File.DirInternal,"data.db",False)
   File.Copy2(Job.GetInputStream,ou)
   ou.Close
   ToastMessageShow("updated successfully",False)
  End If
 End If
End Sub
توی توضیح باید بهتون بگم ما اول اومدیم چک کردیم که آیا موفقیت آمیز بوده یا نه...سپس چک کردیم که آیا نام کار که در بالا در قسمت ht.Initialize مشخص کرده بودیم هست یا نه...سپس دیتابیس قبلی را حذف کردیم و دیتابیس دانلود شده را جایگزین آن کردیم.

پایان آموزش

امیدوارم مورد استفاده همگان قرار گیرد.

 

من دقیقا به همچین چیزی نیاز دارم ولی نمیخوام دیتا بیس قبلیم پاک بشه راهی رو سراغ دارید واسه اینکار؟

مثلا کاربر بتونه خودش دیتا بیس و انتخاب کنه با هر نامی که دانلود میشه و تو کد نویسی ازش استفاده کنم 

البته حجم دیتا بیسم 10 کیلو بایت بیشتر نیست 

ممنونم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب شما میتونید فایل های دانلود شده رو در یک مسیر دلخواه کپی کنید.

و مثلا به وسیله یک Spinner  دیتابیس رو به این Spinner  ربط بدید و کارتون رو انجام بدید

فکر نکنم کار زیاد سختی باشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب شما میتونید فایل های دانلود شده رو در یک مسیر دلخواه کپی کنید.

و مثلا به وسیله یک Spinner  دیتابیس رو به این Spinner  ربط بدید و کارتون رو انجام بدید

فکر نکنم کار زیاد سختی باشه

من داخل هاستم سمت سرور چیزی ننوشتم و از داخل برنامه فقط لینک دانلود دادم متوجه نشدم چیزی رو که شما گفتی من هر دفعه چطور مسیر کپی کردن فایل رو عوض کنم وداخل برنامه ازش استفاده کنم؟

شاید به 50 تا دیتا بیس برسه اونوقت چی کارش کنم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما میگید بنده نمیخوام دیتابیس های قبلیم پتک بشه.

خب بنده هم میگم میتونید از یک Spinner  استفاده کنید و تمامی دیتابیس های برنامه رو ربط بدید به Spinner

 مثلا:

  • دیتابیس 1
  • دیتابیس 2
  • دیتابییس 3

و مثلا روی هر کدوم که کلیک شد بره از مسیر مربوط به همین فایل دیتابیس رو بخونه و اطلاعات رو نمایش بده.

اگه منظورتون همچین چیزی هستش

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما میگید بنده نمیخوام دیتابیس های قبلیم پتک بشه.

خب بنده هم میگم میتونید از یک Spinner  استفاده کنید و تمامی دیتابیس های برنامه رو ربط بدید به Spinner

 مثلا:

  • دیتابیس 1
  • دیتابیس 2
  • دیتابییس 3

و مثلا روی هر کدوم که کلیک شد بره از مسیر مربوط به همین فایل دیتابیس رو بخونه و اطلاعات رو نمایش بده.

اگه منظورتون همچین چیزی هستش

ببنید من میخوام کاربر دانلود کنه بعد ازش بتونه استفاده کنه اما تو اسپینر باید از قبل مسیر دهی کنی و مقدار اسپینر رو بدی درسته؟

کاربر بصورت ماهانه ی دیتا بیس دانلود میکنه و از استفاده میکنه و دیتا بیس قبلی هم میمونه البته من دارم برنامم رو با ی دیتا بیس میدم و برای اپدیتش هم قرار این چیزایی رو که گفتم  اضاف کنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 ماه بعد...

آقایون سلام ودرود

من همین روش موجود در این تایپیک را بکار بردم

ولی بعد از اینکه میگه آپدیت با موفقیت انجام شد باید حتما از برنامه خارج شوی و دوباره وارد شوی تا تغییرات را ببینی

چرا؟؟؟اینجوری

چرا بعد از اینکه  آپدیت شد خود برنامه رفرش نمیشه تا تغییرات اعمال شود؟؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

آقایون سلام ودرود

من همین روش موجود در این تایپیک را بکار بردم

ولی بعد از اینکه میگه آپدیت با موفقیت انجام شد باید حتما از برنامه خارج شوی و دوباره وارد شوی تا تغییرات را ببینی

چرا؟؟؟اینجوری

چرا بعد از اینکه  آپدیت شد خود برنامه رفرش نمیشه تا تغییرات اعمال شود؟؟؟؟

اگه  کد آپدیتو تو اکتیویتی MAIN وداخل یه Buttom جدا بنویسی درست میشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

 

اگه  کد آپدیتو تو اکتیویتی MAIN وداخل یه Buttom جدا بنویسی درست میشه

 

 

ببخشید من متوجه منظور شمانشدم

یعنی چی؟؟؟

ببینید من اومدم دخل صفحه های که لیست ویو دارم و دیتابیس هم توی همین لیست ویو نمایش میده یه دکمه به عنوان آپدیت گذاشتم که کاربر توی همین صفحه آپدیت را انجام بده

و لیست ویو من توی اکتیویتی دوم من است اولی هم که یه اسپلش مخصوص خود هست

حالا اگر بیام توی اکتیوتی mainدکمه بذارم(حتی اگر اسپلش هم نباشه)کاربر باید از اکتیویتی 2 به 1 بیاد بعد کلید بروز رسانی رو بزنه بعد بره تو اکتیویتی 3 تغییرات را مشاهده کنه!!!!!

ولی اگر این بروز رسانی توی خود صفحه مثلا 2 باشه   وتغییرات بلافاصله بعد از یه refreshمشاهده بشه برنامه جذابتر میشه.

حالا

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب شما میتونید فایل های دانلود شده رو در یک مسیر دلخواه کپی کنید.

و مثلا به وسیله یک Spinner  دیتابیس رو به این Spinner  ربط بدید و کارتون رو انجام بدید

فکر نکنم کار زیاد سختی باشه

 

 

آقا آرتا

یعنی شما میگید با همین روش آپدیت دیتابیس(از طریق وب) هم می توان دیتابیس را بروز کرد بدون اینکه کل دیتابیس دانلود و جایگرین قبلی شود؟؟؟

درسته؟؟؟

اگر درسته میتونید یه نمونه سورس کوچک در این مورد بذارید؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ببخشید من متوجه منظور شمانشدم

یعنی چی؟؟؟

ببینید من اومدم دخل صفحه های که لیست ویو دارم و دیتابیس هم توی همین لیست ویو نمایش میده یه دکمه به عنوان آپدیت گذاشتم که کاربر توی همین صفحه آپدیت را انجام بده

و لیست ویو من توی اکتیویتی دوم من است اولی هم که یه اسپلش مخصوص خود هست

حالا اگر بیام توی اکتیوتی mainدکمه بذارم(حتی اگر اسپلش هم نباشه)کاربر باید از اکتیویتی 2 به 1 بیاد بعد کلید بروز رسانی رو بزنه بعد بره تو اکتیویتی 3 تغییرات را مشاهده کنه!!!!!

ولی اگر این بروز رسانی توی خود صفحه مثلا 2 باشه   وتغییرات بلافاصله بعد از یه refreshمشاهده بشه برنامه جذابتر میشه.

حالا

داداش شما میتونی تو دکمه آپدیت آخرش این کدو بنویسی:


activity_create(true) 

یا از این روش استفاده کنی:

 

ebham در تاریخ 26 Sept 2015 - 12:18 صبح گفته استhttp://answercenter.ir/index.php?app=forums&module=forums&section=findpost&pid=50826'>

 

برای رفع این مشکل شما یه کتیویتی جدا برای اپدیت بزار بعدش توی کلیک بکش کدهای زیر رو بنویس 

Activity.Finish
StartActivity(meno)
 
ExitApplication
 
با این کار وقتی کاربر کلید بک رو میزنه  برنامه یه بار خارج میشه و دوباره باز میشه و کلا رفرش میشه 

 

روشی که آقای ابهام گفتند روش خوبیه؛ شما اگر میخواین کلید بک رو نزنید میتونید تایمر تعریف کنید که وقتی که دانلود تمام شد تایمر شروع بشه وبعد از یک ثانیه بره به اکتیویتی مین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

؟با کد

activity_create(true)

مشکل من توی باز کردن مجدد صفحه حل شد و آپدیت های سریعا اعمال و مشاهده میشه(تشکر از همه دوستان و ویژه ازآقای ذاکر)

دوستان ببینید آقای نیکروان یه نظری دادند که میشه  از spinerاستفاده کرد تا کل دیتابیس دانلود و جایگیزین قبلی نشه؟؟

کسی کد اینو داره برای ما بذاره؟

چون واقعا یه جورای اینکه کل دیتابیس دانلود و جایگزین بشه در آینده برنامه تاثیر منفی داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کسی کد اینو داره برای ما بذاره؟

 

درود

بدون شک هیچکس کد آمادشو نداره

مگر اینکه بنویسن یا بهتون توضیح بدن

مبحث بسیار ساده ای است . سعی خودتون برنامه نویسی خودتون رو تقویت کنید :gol:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

جناب آقای شروین تشکر بابت نظرتون

خب در این مورد میشه به این صورت عمل کرد ( فعلا تئوریش رو میگم ) :

ما میاییم اطلاعات رو توی دیتابیس آنلاین میزاریم ! یک دیتابیس آفلاین خالی هم توی برنامه داریم !

اولین بار که برنامه باز شد برنامه میاد تعداد رکورد های دیتابیس آنلاین و آفلاین رو میشماره

مثلا میبینه توی دیتابیس آفلاین 5 رکورد وجود داره اما توی دیتابیس آنلاین 100 رکورد ! خب پس به نتیجه میرسیم که دیتابیس اصلی برنامه

که همون آفلاین هست 95 تا رکورد کم داره ( عمل چک کردن مثل خیلی از برنامه های بانک جوک و اس ام اس میتونه به درخواست خود کاربر صورت بگیره )

خب در هر صورت برنامه میاد 95 تا رکورد آخری که نداره رو دانلود و به دیتابیس آفلاین اضافه میکنه !

حالا سری بعد بدون اینکه نیازی به اینترنت باشه برنامه ما 100 رکورد داره !

دو هفته دیگه میخوایین برنامه رو آپدیت کنید ! به دیتابیس آنلاین 30 رکورد اضافه میکنید ... کاربر بررسی رو میزنه و برنامه میبینه که دیتابیس آنلاین 130 رکورد داره

ولی دیتابیس آفلاین 100 رکورد . پس 30 رکورد کم داره ! برنامه میاد 30 رکورد آخر رو دانلود میکنه و دوباره برنامه بروز میشه

این عمل همچنان ادامه دارد *like*

منطقی ترین راه همینه

ولی همیشه اینقدر ساده نیست

و برای مواردی خوبه که رکوردهای قبلی دیتابیس تغییر نمیکنن

مثل پیامک و از این دست

اگر رکوردهای قبلی تغییر میکنن باید بجای id از فیلدی برای ثبت زمان آخرین تغییر استفاده کنیم و موقع بروزرسانی بگیم اونایی که جدیدتر از بزرگترین زمان دیتابیس آفلاین هستن رو بخونه و

موقع ثبت در دیتابیس باید چک کنیم ببینیم اون رکورد قبلا وجود داشته یا نه (اگه وجود داشته آپدیت و اگه وجود نداشته درج در بانک)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

منطقی ترین راه همینه

ولی همیشه اینقدر ساده نیست

و برای مواردی خوبه که رکوردهای قبلی دیتابیس تغییر نمیکنن

مثل پیامک و از این دست

اگر رکوردهای قبلی تغییر میکنن باید بجای id از فیلدی برای ثبت زمان آخرین تغییر استفاده کنیم و موقع بروزرسانی بگیم اونایی که جدیدتر از بزرگترین زمان دیتابیس آفلاین هستن رو بخونه و

موقع ثبت در دیتابیس باید چک کنیم ببینیم اون رکورد قبلا وجود داشته یا نه (اگه وجود داشته آپدیت و اگه وجود نداشته درج در بانک)

 

 

این یعنی چی؟؟؟

من که هیچی نفهمیدم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • اضافه کردن...