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

استفاده از چند دیتابیس در پروژه و فراخوانی جداگانه هرکدام در یک آیتم لیست ویوو


love-learning

سوال

سلام به همه دوستان...
مشکلی  برای من پیش اومده اینه که؛ من یه پروژه ساختیم شامل سه اکتیویتی (actmain,actlist_item,actmatn) و به این صورت که داخل اکتیویتی main یه لیست ویوو ساختم و با استفاده از کتاب خانه فراخوانی v3.00چند تا آیتم ساختم، طبق کد زیر:

 

نام ستون های دیتابیس: id-list-matn
 

                                                                                                                                  Activity (actmain)e


                                               Sub Process_Globals
Dim id As Int
End Sub

Sub Globals
    Dim fara As Farakhani
    Private ListView1 As ListView
End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("main")
    ListView1.AddTwoLinesAndBitmap2("تیتر اول","تیتر دوم",LoadBitmap(File.DirAssets,"pic1.png"),1)
    ListView1.AddTwoLinesAndBitmap2("تیتر اول","تیتر دوم",LoadBitmap(File.DirAssets,"pic2.png"),2)

    ListView1.AddTwoLinesAndBitmap2("تیتر اول","تیتر دوم",LoadBitmap(File.DirAssets,"pic3.png"),3)

 

 

 

 fara.initialize("data1.db","first",True)
    fara.initialize("data2.db","second",True)
    fara.initialize("data3.db","third",True)

End Sub

 

 

ub ListView1_ItemClick (Position As Int, Value As Object)
    
    
If Value = 1 Then
    id = Value
    StartActivity(actlist_item)
    
    Else If Value = 2 Then
    id = Value
    StartActivity(actlist_item)

    Else If Value = 3 Then
    id = Value

  StartActivity(actlist_item)

 

End If

        End Sub

--------------------------------------------------------------------------------------------------------------------------------------

بعد یه لیست ویو هم داخل اکتیویتی list_item ساختم و کدهای این اکتیویتی

 

                                                                                                               Activity(actlist_item)e

 

 

 

Sub Process_Globals
 Dim meghdar As String
End Sub

Sub Globals
   Private ListView2 As ListView
    Dim fara As Farakhani
    Dim id As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("iist_item")   

 

 fara.initialize("data1.db","first",True)
    fara.initialize("data2.db","second",True)
    fara.initialize("data3.db","third",True)

 

 

If actmain.id = 1 Then
        fara.SingleLineTitr(ListView2,"list","id")
        
        Else If actmain.id = 2 Then
        fara.SingleLineTitr(ListView2,"list","id")
        
        Else If actmain.id = 3 Then
        fara.SingleLineTitr(ListView2,"list","id")

 

End If
  End Sub

 

 

Sub ListView1_ItemClick (Position As Int, Value As Object)
    meghdar = Value
    StartActivity(actmatn)
End Sub

----------------------------------------------------------------------------------------------------------------------------

Activity (actmatn)e

                     بعد داخل اکتیویتی سوم یه اسکرول ویوو ساختم و کد های زیر:

 

Sub Globals 
    Dim fara As Farakhani
    Private ScrollView1 As ScrollView
End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("matn")
 fara.initialize("data1.db","first",True)
    fara.initialize("data2.db","second",True)

    fara.initialize("data3.db","third",True)

 

Dim lbl1 As Label
lbl1.Initialize("")

fara.FarakhaniMatn("id",actlist_item.meghdar,lbl1,"matn")


fara.SetScroll(lbl1,ScrollView1)


lbl1.TextColor = Colors.Black


End Sub

 

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

چطور میتونم کاری کنم که هر آیتم لیست ویوو یک دیتابیس باز کنه؟؟؟

لطفا کمک کنید دوستان

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

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

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

روش فکر نکردم

فقط، یه نکته رو دیدم توی کداتون

1 فراخوانی تعریف کردید

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

کاری که انجام میدید رو با یه fara برای هر دیتابیس تست کنید

dim fara,fara2,fara3 as farakhani




fara.initialize("dbname","tblname",true)
fara2.initialize("dbname","tblname",true)
fara3.initialize("dbname","tblname",true)

یه تست بزنید، شاید براتون مفید باشه

 

 

آقا شهاب تو فروم زیر

http://forum.majidonline.com/archive/index.php/t-82149.html 

با دستورات sql برای اینکار راه حلی داده چطور میتونم من این کدهایی که گفته با کتاب خانه فراخوانی v3.0 بنویسم

لطفا یه نگاهی بنداز

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

سلام هموطن

اونجا هم 2 تا متغیر تعریف کرده، هر کدوم روی یه دیتابیس کار میکنن...

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

	Dim fara,fara2 As Farakhani
	fara.initialize("myDB_1","tbl",True)
	fara2.initialize("MyDB_2","tbl",True)

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

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

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

سلام هموطن

اونجا هم 2 تا متغیر تعریف کرده، هر کدوم روی یه دیتابیس کار میکنن...

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

	Dim fara,fara2 As Farakhani
	fara.initialize("myDB_1","tbl",True)
	fara2.initialize("MyDB_2","tbl",True)

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

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

 

-------------------------------------------------------------------------------------------------------------------------------------------------

 

آقا شهاب میخوام از روش اصلی دیتابیس برم؛ کدهای زیر رو تو یه ماژول کلاس نوشتم لطفا نگاهی به کد های زیر بنداز:

لطفاً حتما تصویر پیوست شده نگاه بنداز که منظورم متوجه بشی






'Class module
Private Sub Class_Globals
Dim sql1 As SQL
Type listItem(code As Int,title As String,content As String)
End Sub


Public Sub Initialize
If File.Exists(File.DirInternal,"a.db") = False Then
 File.Copy(File.DirAssets,"a.db",File.DirInternal,"a.db")
 
 Else If File.Exists(File.DirAssets,"b.db") = False Then
 File.Copy(File.DirAssets,"b.db",File.DirInternal,"b.db")
 
  Else If File.Exists(File.DirAssets,"c.db") = False Then
 File.Copy(File.DirAssets,"c.db",File.DirInternal,"c.db")		
End If

sql1.Initialize(File.DirInternal,"a.db",False)
sql1.Initialize(File.DirInternal,"b.db",False)
sql1.Initialize(File.DirInternal,"c.db",False)



End Sub





Public Sub loadList As List                 'این ساب مربوط به اکتیویتی میشه که توش قراره موضوع(تیتر) آیتم های دیتابیس رو در یک اسکرول ویو نمایش بده
Dim l2,l3,l4 As List
l2.Initialize
l3.Initialize
l4.Initialize

Dim c1,c2,c3 As Cursor

c1 = sql1.ExecQuery("select * from A_table")

c2 = sql1.ExecQuery("select * from B_table")

c3 = sql1.ExecQuery("select * from C_table")

For i = 1 To c1.RowCount
 c1.Position = i
 c2.Position = i
 c3.Position = i
 Dim t1 As listItem
 t1.Initialize
 t1.code = c1.GetInt("code")
 t1.content = c1.GetString("content")
 t1.title = c1.GetString("title")
 l2.Add(t1)
Next
Return l2
End Sub



Sub loadTitleContent(title As String) As listItem      'این ساب مربوط به اکتیویتی میشه که قراره متن موجود در دیتابیس رو پس از کلیک روی موضوع(تیتر) در اسکرول ویوو نمایش بده
Dim ca,cb,cc As Cursor
ca = sql1.ExecQuery("select code,content from A_table where title='" & title & "'")
cb = sql1.ExecQuery("select code,content from B_table where title='" & title & "'")
cc = sql1.ExecQuery("select code,content from C_table where title='" & title & "'")
ca,cb,cc.Position = 0
Dim l1 As listItem
l1.Initialize
l1.code = ca.GetInt("code")
l1.content = ca.GetString("content")
Return l1
End Sub




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

واقعا ممنون میشم...

توضیحات:

اسم ستون های دیتابیس هام (code,title,content) هست

post-4768-0-06424600-1453461282_thumb.png

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

سلام

دقیق شرط چیرو میخواین؟

بعد کلاس ماژول برای چی ?: ))

یه سوال دیگه چرا چند تا دیتابیس مختلف؟

خو نمیتونید با چند تا تیبل فصل بندی کنید؟

یا از روش ساب ای دی برید؟

من به شخصه برای این تیپ لیست میومدم و چندتا تیبل میذاشتم قبلنا

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

توی اون سورسی که خودم بهتون دادم بالا، دقیقا ای ننحوه شرط گذاری انجام شده...

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

سلام دوستم

خوش اومدید

یه کتاب چند جدولی میخواین درست کنید دیگه؟

(این سورستون یه سری مشکل داره و در کل زیاد بهینه نیستش به این شکل)

مطالب زیر، هر دو با فراخوانی نسخه 2 هستن که خودتون تبدیلشون کنید به نسخه 3 و استفاده کنید

اگر مشکلی داشتید با تبدیلشون، خط کد رو بذارید تا من براتون معادل فراوانی 3 رو بگم دوستم :gol:

 

http://answercenter.ir/topic/5947-آموزش-فصل-بندی-کتاب/

http://answercenter.ir/topic/3622-سورس-کد-کتاب-های-چند-جدولیعلاقه-مندی-و-فراخونی-تی/

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

مرسی آقا شهاب اون آموزش رو خواهم دید ولی فقط میخواستم بدونم برای اینکه هر آیتم لیست ویوو رو تنظیم کنم که هر آیتم اطلاعات یک دیتابیس بخونه؛ باید چیکار کنم؟

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

روش فکر نکردم

فقط، یه نکته رو دیدم توی کداتون

1 فراخوانی تعریف کردید

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

کاری که انجام میدید رو با یه fara برای هر دیتابیس تست کنید

dim fara,fara2,fara3 as farakhani




fara.initialize("dbname","tblname",true)
fara2.initialize("dbname","tblname",true)
fara3.initialize("dbname","tblname",true)

یه تست بزنید، شاید براتون مفید باشه

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

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

اطلاعات دیتابیس اول برای هر سه آیتم لود میشه

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

بایگانی شده

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

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
  • کاربران آنلاین در این صفحه   0 کاربر

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