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

دیتابیس


ehsan20000

سوال

با سلام خدمت دوستان عزیز

من یک دیتابیس ساختم که مثلا در یک تیبل حدود سیصد رکورد داره ولی باز نمیکنه برنامه هنگ میکنه و خارج میشه اینو چیکار کنم؟

دوم این که وقتی دیتابیسو ویرایش میکنم اصلا تو اجرای مجدد نمیاره و فقط قبلی ها میاره.دیتابیس هم تو فایل برنامه هست حتی دوباره اپلودشم میکنم ولی اثری نداره

با تشکر

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

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

چیزی که به ذهن من میرسه ، لیمیت دادنه که شما داری در اصل خودت لیمیت میدی یه جورایی

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

مشکلتون حل میشه انشاالله

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

باشه داداش ممنون ازت خیلی زحمت کشیدی

 

دوستان دیگه لطفا اگه میتونین کمک کنین خیلی واجبه

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

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

چون بیسیک یه باگ تو لود کردن تصاویر داره و اگر تصویر زیاد باشه فورس کلوز میده ( شما اگه تو لایوت layptext عکس گذاشتی به جاش از رنگ استفاده کن ببین میشه )

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

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

سلام

ایتم هاتون وقتی زیاده ، بیسیک به نسبت گوشی ای که دارید، هنگ میکنه

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

اما اگر میخواین با مولتی پنل کار کنید حتما، از لیمیت استفاده کنید

مطلب زیاد هست

یه سرچ بزن دلاور....

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

من یک دیتابیس ساختم که مثلا در یک تیبل حدود سیصد رکورد داره ولی باز نمیکنه برنامه هنگ میکنه و خارج میشه اینو چیکار کنم؟

اطلاعات کامل تری در اختیارمون قرار بدید

دوم این که وقتی دیتابیسو ویرایش میکنم اصلا تو اجرای مجدد نمیاره و فقط قبلی ها میاره.دیتابیس هم تو فایل برنامه هست حتی دوباره اپلودشم میکنم ولی اثری نداره

 

ببینید شما موقع اجرای برنامه در دفعه اول میایید میگید اگه مثلا x.db توی DirInternal وجود نداشت بیاد x.db رو از Assets کپی کنه توی Internal

خب یک بار کپی انجام میشه ! حالا شما دیتابیس توی Assets رو بروزرسانی میکنید . برنامه باز اجرا میکنید

بررسی میکنه که آیا فایل x.db توی Internal وجود داره یا نه ؟ این دفعه جواب مثبت است و برای همین دیتابیس جدید جایگذین قبلی نمیشه

مگه اینکه شرط رو بشکنید یا Clear Data کنید :)  

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

مگه اینکه شرط رو بشکنید یا Clear Data کنید
 

با سلام

 

ببخشید آقای ایزدی منظورتون از این شرط رو بشکنیم چیه 

یعنی شرط واسه کپی کردن دیتابیس نذاریم ؟؟؟؟

یا شرطی بذاریم بگیم قبلی رو حذف کنه جدیده رو بذاره ؟؟؟؟؟

 

در مورد این clera data هم اگه میشه یه توضیح بدید 

 

با تشکر

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

شرط رو بشکنیم توی همون خط اول که گفتیم if x.db exist بیاییم اسم x رو یک بار عوض کنیم و بگیم if xxx.db exist

خب چون فایل xxx وجود نداره میاد همون x.db رو باز کپی میکنه و جایگذین میشه ! بعدش از 1 بار Run گرفتن دوباره اسم رو به x برمیگردونی !

 

 

در مورد Clear Data توی مدیریت برنامه هاتون توی گوشی زمانی که میخواهید برنامه رو Unistall کنید یک گذینه هم داره

به نام Clear Data که میتونید از طریق اون گذینه تمام اطلاعاتی که از طریق اون برنامه روی گوشی شما کپی شده رو حذف کنید !

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

با سلام خدمت دوستان

 

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

 

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

فقط یک مشکل که اولم گفتم

من مثلا یک دیتابیس ساختم  با یک تیبل بنام tblc.حالا مثلا زدم id , name , list

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

	If File.Exists(File.DirInternal,"c.db") = False Then
    	File.Copy(File.DirAssets,"c.db",File.DirInternal,"c.db")
    End If

	sql1.Initialize(File.DirInternal,"c.db",False)
	cursor1 = sql1.ExecQuery("SELECT * FROM tblc ")
	
	
	
	For i=0 To cursor1.RowCount-1
		cursor1.Position= i
		Dim pp As Panel
		pp.Initialize("pp")
		ScrollView1.Panel.AddView(pp,0,h,100%x,100%y)
		pp.Width = Activity.Width
		pp.LoadLayout("layptext")
		h = h + 11%y
		
		lbltext.Typeface=Typeface.LoadFromAssets("entezar.ttf")
		lbltext2.Typeface=Typeface.LoadFromAssets("entezar.ttf")

		lbltext.Text = cursor1.GetString("name")	
		btnfav.Tag = cursor1.GetString("id")
	Next
	
	ScrollView1.Panel.Height = h

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

	cursor1 = sql1.ExecQuery("SELECT * FROM tblc WHERE list = "&1)

حالا وقتی میخوام برنامه رو اجرا کنم بیرون میاد

وقتی رکورد های دیتابیس بیشتر از 40 تا میشه اینجوری میشه و گرنه تا کمتر از اون میاره

مشکل چیه به نظرتون چیکار کنم چطوری قسمت کنم

ممنون

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

با سلام خدمت دوستان گل
 
شهریار جان ای دی رو نگاه کردم تکراری نداشت و این که اون لایوت رو عکساشو پاک کردم و رنگم گذاتم ولی بازم این ارور میده و از برنامه خارج میشه
اولش این دانلود ها میاره که نمیدونم مال کدوم عکس هست بعدش کدای زیرش
 
Downsampling image due to lack of memory.
Downsampling image due to lack of memory: 4
Downsampling image due to lack of memory.
Downsampling image due to lack of memory: 4
Downsampling image due to lack of memory.
Downsampling image due to lack of memory: 4
Downsampling image due to lack of memory.
Downsampling image due to lack of memory: 4
Downsampling image due to lack of memory.
Downsampling image due to lack of memory: 4
Downsampling image due to lack of memory: 8
Downsampling image due to lack of memory.
Downsampling image due to lack of memory: 4
Downsampling image due to lack of memory: 8
Downsampling image due to lack of memory.
Downsampling image due to lack of memory: 4
Downsampling image due to lack of memory: 8
Downsampling image due to lack of memory: 16
Downsampling image due to lack of memory: 32
Downsampling image due to lack of memory.
Downsampling image due to lack of memory: 4
Downsampling image due to lack of memory: 8
Downsampling image due to lack of memory: 16
Downsampling image due to lack of memory: 32
Downsampling image due to lack of memory: 64

Error occurred on line: 66 (mci2)
java.lang.RuntimeException: Error loading bitmap (OutOfMemoryError)
at anywheresoftware.b4a.objects.drawable.CanvasWrapper$BitmapWrapper.InitializeSample(CanvasWrapper.java:568)
at anywheresoftware.b4a.objects.drawable.CanvasWrapper$BitmapWrapper.Initialize(CanvasWrapper.java:512)
at anywheresoftware.b4a.keywords.Common.LoadBitmap(Common.java:1125)
at ir.cn.talebi.mci2._activity_create(mci2.java:419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:636)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:305)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:238)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:121)
at ir.cn.talebi.mci2.afterFirstLayout(mci2.java:100)
at ir.cn.talebi.mci2.access$100(mci2.java:17)
at ir.cn.talebi.mci2$WaitForLayout.run(mci2.java:78)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

خط اول که میزنم این ارور مال این خطه

btnfav.SetBackgroundImage(LoadBitmap(File.DirAssets , "p01.png" ))

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

من میخوام مثلا یک اسپیر داشته باشم که وقتی مثلا رو یک زدی 20 تا گزینه تو دیتابیس بیاره وقتی رو دو زدم 34 تا مثلا اینجوری میخوام

به نظرتون اگه برای هر گزینه توی اسپینر از یک تیبل جداگانه استفاده کنم بهتر نیست؟

منتظرم کمکاتون هستم

 
 

 

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

نه دلاور

چه کاریه

شما بیا و هر بار که ایپینرت رو عوض کردی، یه بار اون موتی پنل یا لیست ویو رو پاک کن و یه مقداری به عدد افست و لیمیت اضافه کن ، کوئری رو که اجرا کنی، درست میشه

اگه مشکلی داشتی، بگو یه نمونه کلی برات بذارم راحت تر متوجه بشی دلاور

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

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

 

چون من مثلا دادم وقتی لایوت اجرا میشه مثلا از 300 تا 10 تایی که عدد لیستشون 1 هست نمایش بده ولی بازم همین ارور رو میده

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

ببین این ارور رو شما داری

این مشکل مربوط به مولتی پنلت هست

اگه میخوای این مشکل برطرف بشه(چون حتی با لیمیت هم در مقیاس بالا مثلا 400-500)

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

دقیقا لیست ویو جاوا هست که پیاده شده برای بیسیک

http://answercenter.ir/topic/10302-لیست-ویو-قدرتمند-و-بسیار-سریع-arialistview/

استفاده کنی، خیالت راحته که فورس کلوز و این چیزا رو حتی برای مقیاس های زیاد هم نداری....

منم میگردم کد لیمیتو برات پیدا کنم..

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

حالا شما یک کدی چیزی بده تا کارمون راه بیوفته الانه وضع خرابه موقع شهریه و امتحاناتو ایناس تا قرون اخر از حسابمون کشیدن بیرون

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

خواهش میکنم دلاور

 

من با این کد کار میکنم و مشکلی هم ندارم برای مقیاس های پایین

 

این ساب رو اضافه کن

Sub show (sqlstatment As String)
ScrollView1.Panel.RemoveAllViews
s = 0
ScrollView1.ScrollPosition = 0
	Main.cur = Main.sql1.ExecQuery(sqlstatment)
	For i = 0 To Main.cur.RowCount - 1
		Main.cur.Position = i
		Dim p As Panel
		p.Initialize("p")
		ScrollView1.Panel.AddView(p,0,s,96%x,100%y)
		s = s + 25%y
		p.LoadLayout("nh_lay")
		lb_name.Text = Main.cur.GetString("name")&CRLF&Main.cur.GetString("name_maddah")
		bt_set.Tag = Main.cur.GetInt("id")
		Dim faveroiteast As Int
		textsize.FitToLabelSize(lb_name)
		ScrollView1.Panel.Height = s
	Next
End Sub

این کد هم توی اون صفحه 1 و دو ... بنویس دیگه

Sub EventName_ItemClick (Position As Int, Value As Object)
	If Value = 1 Then
		offset = 0
			showlim("SELECT * FROM nohe ORDER BY id DESC limit 10 OFFSET "&offset&"")
		else If Value = 2 Then
			offset = 10
			showlim("SELECT * FROM nohe ORDER BY id DESC limit 10 OFFSET "&offset&"")
			else If Value = 3 Then
			offset = 20
			showlim("SELECT * FROM nohe ORDER BY id DESC limit 10 OFFSET "&offset&"")
	End If
	
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

داداش ممنون فقط چند جا مشکل دارم

 

اول تو این قسمت قرمز میاره

textsize.FitToLabelSize(lbltext)
 
offset و showlim هم قرمز میاره
لینک ارسال
به اشتراک گذاری در سایت های دیگر

عزیزم اون خط رو کلا پاک کن
مربوط به شما نیست

ساب showlim هم تعریف کردی

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

offset هم یه متغیر هست

تو گلوبال تعریف کن از نوع اینت...

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

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

http://answercenter.ir/topic/8821-تاپیک-جامع-دستورات-sqlite/

شما تاپیک زیر رو ببین

اموزششم هست

خودت بنویس :gol:

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

بایگانی شده

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

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

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