رفتن به مطلب
  • 0

مشکل دیتابیس در اندروید 5.1


AMiR

سوال

با سلام

 

وقتی میخوام از داخل برنامه یه فیلد دیتابیس رو آپدیت کنم ارور میده و میگه این فیلد فقط خواندنیه !! در حالی که تو بقیه ورژنای اندروید مشکلی نیست

 

این واسه بخش برگزیده هاست، واسه تنظیمات هم از دیتابیس استفاده کردم و دیتابیس آپدیت میشه  ولی این نمیدونم چرا گیر داده !!!

 

عکس ارور:

post-192-0-49516500-1438406521_thumb.jpg

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

12 پاسخ به این سوال تاکنون داده شده است

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

بله برادر هست

 

اونم اینه که موقع فراخوانی از کوئری اون رو لیمیت کنید

در انجمن زیاد بحث شده جستجو کنید اگه به جواب نرسیدید یه تایپیک جدید بزنید ما در خدمتیم

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

موقع اینشیالایز کردن متغیر SQL آرگومان CreateIfNecessary رو True قرار بدید :write:

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

موقع اینشیالایز کردن متغیر SQL آرگومان CreateIfNecessary رو True قرار بدید :write:

درست نشد!!

 

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

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

یه تیکه کدی سورسی چیزی بزارید تا بررسی کنیم

کدش ساده ست چیز خاصی نداره

تو اکتیویتی کریت اینشیالایزش کردم و تو رویداد باتن هم رویداد مربوط به نشانه گذاری رو نوشتم

 

این رویداد کلیکش

Sub Bneshan_Click
	Dim v As Button
	v=Sender
	
	Dim cur2 As Cursor

	cur2=sql1.ExecQuery("select * FROM tab where id=" &v.Tag)
	cur2.Position=0

	If cur2.GetInt("neshan") = 0 Then
	
	sql1.ExecNonQuery("UPDATE tab SET neshan=1 WHERE id="& v.Tag)
	Dim neshan As BitmapDrawable
	neshan.Initialize(LoadBitmap(File.DirAssets,"neshanb.png"))
	v.Background=neshan
	ToastMessageShow("به لیست برگزیده ها اضافه شد", False)
	
	Else
	
	sql1.ExecNonQuery("UPDATE tab SET neshan=0 WHERE id="& v.Tag)
	Dim neshan As BitmapDrawable
	neshan.Initialize(LoadBitmap(File.DirAssets,"neshana.png"))
	v.Background=neshan
	ToastMessageShow("از لیست برگزیده ها حذف شد ", False )
	
	End If
End Sub

CreateIfNecessary هم تو اینشیالایز True گذاشتم

 

فقط تو 5.1 اینجوریه !!

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

کدش ساده ست چیز خاصی نداره

تو اکتیویتی کریت اینشیالایزش کردم و تو رویداد باتن هم رویداد مربوط به نشانه گذاری رو نوشتم

 

این رویداد کلیکش

Sub Bneshan_Click
	Dim v As Button
	v=Sender
	
	Dim cur2 As Cursor

	cur2=sql1.ExecQuery("select * FROM tab where id=" &v.Tag)
	cur2.Position=0

	If cur2.GetInt("neshan") = 0 Then
	
	sql1.ExecNonQuery("UPDATE tab SET neshan=1 WHERE id="& v.Tag)
	Dim neshan As BitmapDrawable
	neshan.Initialize(LoadBitmap(File.DirAssets,"neshanb.png"))
	v.Background=neshan
	ToastMessageShow("به لیست برگزیده ها اضافه شد", False)
	
	Else
	
	sql1.ExecNonQuery("UPDATE tab SET neshan=0 WHERE id="& v.Tag)
	Dim neshan As BitmapDrawable
	neshan.Initialize(LoadBitmap(File.DirAssets,"neshana.png"))
	v.Background=neshan
	ToastMessageShow("از لیست برگزیده ها حذف شد ", False )
	
	End If
End Sub

CreateIfNecessary هم تو اینشیالایز True گذاشتم

 

فقط تو 5.1 اینجوریه !!

 

1 - الان کد اینشیالایز Sql کجاس؟

2 - این چ ربطی به کتابخونه ما داشت؟!

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

1 - الان کد اینشیالایز Sql کجاس؟

2 - این چ ربطی به کتابخونه ما داشت؟!

1:

If sql1.IsInitialized=False Then
	sql1.Initialize(File.DirInternal,"DBS.db",True)
	End If

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

 

فقط وقتی واسه دومین بار وارد اکتیویتی میشم و میخوام رویداد باتن رو انجام بدم اون ارور رو میده و فقط هم تو 5.1 اینجوری میشه و تو 4.4 - 4.3 - 4.2.2 - حتی 2.3 هم مشکل نداره !!!

 

میخواستم بدونم مشکلش چیه

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

درست میگید دوست عزیز تو یه تاپیک دیگه یه دوست دیگه همچین سوالی پرسیده بود که از کتابخانه من بودش...

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

درود

روی دیتابیس راست کلیک کنید و Properties رو بزنید

بعدش Attributes رو نگاه کنید ببینید Read-Only تیک خورده ؟ کلا نباید چیزی تیک خورده باشه !

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

درود

روی دیتابیس راست کلیک کنید و Properties رو بزنید

بعدش Attributes رو نگاه کنید ببینید Read-Only تیک خورده ؟ کلا نباید چیزی تیک خورده باشه !

 

نه همچین موردی هم نیست .

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

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

 

از اونجایی که اخطار شما داخلی هست

و در سایت sqllite دلیلشو عدم انتقال ارائه کرده

دوتا پیشنهاد میکنم

 

1. از یک فایل ذیتابیس ساده دیگه استفاده کنید و تست کنید

2. دیتبایس رو دستی کپی کنید


	File.Copy(File.DirAssets,DBName,File.DirInternal,DBName)

نتیجه رو گزارش کنید

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

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

 

از اونجایی که اخطار شما داخلی هست

و در سایت sqllite دلیلشو عدم انتقال ارائه کرده

دوتا پیشنهاد میکنم

 

1. از یک فایل ذیتابیس ساده دیگه استفاده کنید و تست کنید

2. دیتبایس رو دستی کپی کنید


	File.Copy(File.DirAssets,DBName,File.DirInternal,DBName)

نتیجه رو گزارش کنید

 

دیتابیس دیگه ای ساختم ، درست شد !!

 

یه سوال دیگه هم دارم، با اینکه حدود 500 رکورد تو دیتابیس هست ولی سرعت گوشی موقع باز کردن اکتیویتی فهرست و مطلب میاد پایین ( دیر باز میکنه ) راهکاری واسه کم نشدن سرعت گوشی هست؟؟

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

بایگانی شده

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

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

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