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

مشکل با SQL


qmars

سوال

سلام
:scratch_one-s_head: تقریبا چهار ساعته دارم روش کار میکنم
 روی یه دستور select ساده ی sql 

 

	db.existdb("chimikhay.db")
	db.initdb("chimikhay.db")

	Dim cur As Cursor
	cur = Starter.sql.ExecQuery("SELECT name FROM tbl_drawer")

	Log(cur.RowCount)
	
		For i = 0 To cur.RowCount -1
			cur.Position = i
			Log(f)
		
			Log(cur.GetString2(i))

		Next

دو تابع db.existdb , db.initdb
میان چک دیتابیس وجود داره و اینشیالایز شده یا نه

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

ولی توی این پروژه ی جدیدم این ارور رو میده
 

*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
deleted
ANSWERtrue
init:true
false
17
0
صفحه اصلی
1
main_activity_create (java line: 367)
java.lang.IllegalStateException: Couldn't read row 1, col 1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
	at android.database.CursorWindow.nativeGetString(Native Method)
	at android.database.CursorWindow.getString(CursorWindow.java:434)
	at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
	at anywheresoftware.b4a.sql.SQL$CursorWrapper.GetString2(SQL.java:368)
	at b4a.examplew.main._activity_create(main.java:367)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
	at b4a.examplew.main.afterFirstLayout(main.java:104)
	at b4a.examplew.main.access$000(main.java:17)
	at b4a.examplew.main$WaitForLayout.run(main.java:82)
	at android.os.Handler.handleCallback(Handler.java:733)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:5372)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:970)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:786)
	at dalvik.system.NativeStart.main(Native Method)

فقط رکورد اول رو میگیره بعد که میاد رکورد دوم رو بگیره ارور میده  و انگار cursor مقدار خودشو از دست میده!
توی دیتابیس هم از blob استفاده نشده
دیتابیس جدید هم ساختم با دو ستون و شش سطر باز هم همین مشکل وجود داشت
تیک کتابخونه های اضافی هم برداشتم که شاید تداخل داشته باشن ولی بازم درست نشد
:blink:

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

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

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

در 5 دقیقه قبل، ForI گفته است :

 

سلام

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

بجای GetString2 از GetString استفاده کنید

 

نمونه:


If File.Exists(File.DirInternal,"data.db") = False Then
	File.Copy(File.DirAssets,"data.db",File.DirInternal,"data.db")
End If
	
	SQL1.Initialize(File.DirInternal,"data.db",True)
	cur1 = SQL1.ExecQuery("SELECT * FROM tbl")
	For i=0 To cur1.RowCount - 1
	cur1.Position = i

'	ListView1.AddTwoLines(cur1.GetString("id"),cur1.GetString("subject"))

	Next

 

مرسی :give_heart:
:bigsmile::bigsmile:همزمان با هم به این نتیجه رسیدیم:bigsmile:

 

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

بایگانی شده

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

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

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