رفتن به مطلب
بخش Unity به انجمن اضافه شد
  • 0

مشکل با file.copy!!!!


hooooman

سوال

سلام

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

اول مشکل این بود که وقتی به جدولم چند تا رکورد اضافه می کردم متوجه نمیشد!! و همون چند تا رکورد اول رو نشون میداد.اومدم فایل db از گوشی پاک کردم. و دوباره برنامه رو اجرا کردم.حالا همش اشکال میگیره و از برنامه میاد بیرون

Public Sub WithfldID

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



   If Sql1.IsInitialized=False Then
     Sql1.Initialize(File.DirInternal,"Mydb.db",False)
   End If




 Dim Cur1 As Cursor


 Cur1=Sql1.ExecQuery("select fld1 from tbl1")  

 For i=0 To Cur1.RowCount-1

   Cur1.Position=i
    Msgbox(Cur1.GetString("fld1"),"")

 Next

 Cur1.Close


End Sub    


اشکالی هم که میگیره اینه



java.io.FileNotFoundException: /mnt/sdcard/Android/data/b4a.example/files/virtual_assets/Mydb.db (No such file or directory)

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

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

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

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

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

و مورد دوم اینه که شما چرا دستورات اس کیو ال رو با حروف موچیک نوشتین؟دلیل اینکه رکوردی اضافه نمیشه و یا گرفته نمیشه بخاطر اینه که کوئری ارسالی نا شناختس واسه اس کیو ال

اینطوری بنویسید:

Cur1=Sql1.ExecQuery("SELECT fld1 FROM tbl1")

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

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

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

اوووه متوجه شدم. ببخشین ولی بار اول که برنامه رو اجرا کردم داخل جدول 1 رکورد بود و اون یه رکورد رو نشون هم میداد. اما من اومدم 2 3 تا رکورد دگه هم با navicat به جدول اضافه کردم. اما باز هم موقع اجرا همون 1 رکورد رو نشون میداد.مشکل از همون حروف کوچیکه؟ در ضمن من با b4abridge برنامه رو تست میکنم

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

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

امید وارم متوجه شده باشید یا حق

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

ببینید شما فایلی توی DirAssets نداری تا بتونی کپی کنی.(پوشه Files)

ببینید شما اومدین با ندیکد اضافه کردید اما آیا شما اون دیتابیسی رو که ویرایش دادید با دیتابیس داخل پوشه Files عوض کردید؟

شما میایید دیتابیستون رو تغییر میدید اما دیتابیسی که در پوشه Files وجود داره هیچ تغییری اعمال نمیشه چون فایل دیتابیس شما کپی شده توی پوشه Files.

شما بیا دیتابیستو تغییر بده و دولاره از طریق Files به پروژت اضافش کن و کوئری هارو با حروف بزرگ بنویسید

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

ببینید شما فایلی توی DirAssets نداری تا بتونی کپی کنی.(پوشه Files)

ببینید شما اومدین با ندیکد اضافه کردید اما آیا شما اون دیتابیسی رو که ویرایش دادید با دیتابیس داخل پوشه Files عوض کردید؟

شما میایید دیتابیستون رو تغییر میدید اما دیتابیسی که در پوشه Files وجود داره هیچ تغییری اعمال نمیشه چون فایل دیتابیس شما کپی شده توی پوشه Files.

شما بیا دیتابیستو تغییر بده و دولاره از طریق Files به پروژت اضافش کن و کوئری هارو با حروف بزرگ بنویسید

خب آقای آرتا منظورتون اینه که من هر بار رکوردی با navicat اضافه میکنم باید با file.copy اونو دوباره کپی کنم تو مسیر file درسته؟ یا اینکه باید برنامه unisns و دوباره ins کنم؟ ضمنان الان یه ارور جدید هم میگیره!!!!!! روی خط sql1.initialize...

android.database.sqlite.SQLiteException: unable to open database file

این دیگه چیه؟!!!!!

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

درود

تا جایی که بنده اطلاع دام حروف کوچک و بزرگ حساسه برای دیتابیس حداقل برای SELECT و FROM *همینه*

دیروز به این نتیجه رسیدم که برای WHERE حساس نیست *تعجب*

در مورد خطا هم یک سوال از شما دارم: آیا فایل MyDb.db در مسیر DirAssets وجود داره؟ خطا گفته وجود نداره *خوشمزه*

فایل MyDb.db رو از تب Files به پوشه Files اضافه یا همون Add کنید *باکلاس*

راستی به جای MsgBox از ListView استفاده کنید خب *سرپایین*

موفق باشید

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

"در مورد خطا هم یک سوال از شما دارم: آیا فایل MyDb.db در مسیر DirAssets وجود داره؟ خطا گفته وجود نداره *خوشمزه*

فایل MyDb.db رو از تب Files به پوشه Files اضافه یا همون Add کنید "

ببخشین ... یکم مبتدی بگین لطفا !!!!.... تب files , پوشه files!!!! .. داخل فولدر برنامه داخل فولدر file (روی pc) هم mydb.db وجود داره ... داخل گوشی در مسیر

b4a.first/files/virtual_assets/

هم mydb.db وجود داره.

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

پیشنهادی ندارین ؟

پروژه رو پیوست کنید لطفا

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

سلام

حقیقتش حیرون موندم!!!!!!!!!!*تعجب*

من یه پروژه جدید ساختم و همون کدها رو توش نوشتم. عینا همون ها رو.روی گوشی هم برنامه قبلی رو unins و کردم و دوباره اجرا کردم. بدون هیچ مشکلی مشکلی کار میکنه!!!! تا به حال همچین چیزی ندیده بودم.فک کنم این از کرامات b4a باشه!!!!!!!

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

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

اما خیلی عجیبه

اگه هر تغییری توی دیتابیس با navicat بدیم دیگه هر کاری کنیم فقط با پیغام unable to open database file مواجه میشیم.باور کنین همه کار کردم.بیش از 20 بار unins و ins کردم (البته داخل b4a bridge) دستی فایل رو کپی کردن تو فولدر files از تو b4a هی remove و دوباره add کردم ..... نشد که نشد ... آخرشم خیلی مسخره یه پروژه جدید درس کردم.دیتابیس هم دوباره ساختم !!!!!!!!! و درست شد!!!!!!! نمیدونم چه چیزی شد.آیا b4a من ایراد داره ... یا من کاری باید بکنم که نکردم!!!! یا کاری کردم که نباید میکردم !!!!!! نمیدونم والا

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

دقیق نفهمیدم مشکلتو ولی خیلی وقتا مشکل از نویکده

مشکل اینه که اگر هر تغییری با نویکد تو جداول بدم دیگه به هیچ وجه برنامه کار نمیکنه همش پیغام unable to open database file میده فایل دیتابیس رو هم داخل پوشه files کپی میکنم نمیشه داخل سورس remove و دوباره add میکنم باز نمیشه برنامه رو uninstall و دوباره install میکنم باز نمیشه (البته در b4abridge )

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

بایگانی شده

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

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

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