اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

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


qmars

مشکل با SQL

3 ارسال در این موضوع قرار دارد

سلام
: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:

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در ۱ ساعت قبل، qmars گفته است :

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

...
 

 

سلام

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

بجای 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

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 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:

 

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


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

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

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری