رفتن به مطلب
لـــرن نــت

انجمن های پشتیبانی

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

تــوجــه

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

تــوجــه

این وب سایت تحت نظر پلیس فتا میباشد و تمامی مطالب طبق قوانین ایران میباشد.

کامکار

آپدیت دیتابیس از طریق وب،مسائل و مشکلات

پست های پیشنهاد شده

کامکار    25

اساتید سلام

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

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

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

 و بعد هم برنامه refreshمیشه و تغییرات جدید ظاهر میشه

عالی بود

اما یه مشکل وجود داشت::::

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

یکی از دوستان دیگه ما گفت بیا کد:

If FirstTime = True Then
		'''''''''code ha''''''''''''
	End If

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

ما این کد را گذاشتیم ولی فرق نکرد

این هم کدهای مرتبط با این قضیه :

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	If FirstTime = True Then
	Activity.LoadLayout("1")
	fara.TwoLineAndBitmapTitr("news.db",sql1,cur,"SELECT * FROM new1",ListView1,"titr","matn","id","pic",bitmap1)
		ListView1.TwoLinesAndBitmap.SecondLabel.Gravity=Gravity.CENTER
	ListView1.TwoLinesAndBitmap.Label.Gravity=Gravity.RIGHT
	ListView1.TwoLinesAndBitmap.Label.Gravity=Gravity.RIGHT
	ListView1.TwoLinesAndBitmap.SecondLabel.Gravity=Gravity.RIGHT
	ListView1.TwoLinesAndBitmap.Label.Left = -2%x
	ListView1.TwoLinesAndBitmap.secondLabel.Left = -2%y
	ListView1.TwoLinesAndBitmap.Label.TextColor=Colors.Blue
	ListView1.TwoLinesAndBitmap.SecondLabel.TextColor=Colors.Green
	ListView1.Color=Colors.Gray
	pe.Initialize("pe")
	End If
End Sub
Sub pe_ConnectivityChanged (NetworkType As String, State As String, Intent As Intent)

	If State="CONNECTED" Then
		Dim ht As HttpJob
		
ht.Initialize("update",Me)
ProgressDialogShow("در حال بروز رسانی.بعد از بروز رسانی برنامه بسته می شود.لطفا منتظر بمانید")
ht.Download("http://bayanbox.ir/download/5616858746303122179/news.db")
	
		Else
			'ToastMessageShow("اینترنت خاموش شد",False)
	End If
	
End Sub

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

 

این لینک فیلم برنامه که دائما بروز رسانی میشه(حجم 3 مگ)

  • پسندیدم 1

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


لینک به ارسال

سلام برادر

والا فک کنم یه سه چهار ماهی هست سر این قضیه مشکل دارید 

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

اقا قبل عملیات اپدیتت، بیا یه شرط بذار

if file.exist(file.dirinternal,"up.txt") = false then


'amalaitaaate update'

file.writestring(file.dirinternal,"up.txt","1")


else if

msgbox("app is updated" , "")

end if

  • پسندیدم 3

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


لینک به ارسال
کامکار    25

 

سلام برادر

والا فک کنم یه سه چهار ماهی هست سر این قضیه مشکل دارید 

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

اقا قبل عملیات اپدیتت، بیا یه شرط بذار

if file.exist(file.dirinternal,"up.txt") = false then


'amalaitaaate update'

file.writestring(file.dirinternal,"up.txt","1")


else if

msgbox("app is updated" , "")

end if

 

آقا شهاب سلام

بله درسته تقریبا دو ماهه هست سر همین آپدیت موندم

چند دلیل هم داره

1- بی تجربی خودم

2- دو پهلو بودن برخی راهنمایی دوستان(البته خدایی شما نه)

3- دیر پاسخ دادن برخی انجمن ها  به همین سوالات ساده

 

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

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

بیام توی برنامه بذارم که هر وقت برنامه بالا اومد

پیغام برای کاربر نشون داده بشه که

آیا میخاین داده های برنامه را بروز رسانی کنید یا خیر؟؟

اگر گفت آره

اونوقت عملیات یکبار بروز رسانی انجام بشه؟؟؟

خوبه؟؟

به نظر شما!!!

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

  • پسندیدم 1

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


لینک به ارسال

این کارم میشه انجام داد که میگی

یه راه بهترم اینه که 

شما بیای و توی یه فایل تکست توی هاستت

یه عدد مثلا 1 رو قرار بدی

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

هر بار هم که اپدیت انجام میشه بیا و این عدد رو ذخیره کن

دفعه بعدی که اپدیت گذاشتی ، عدد توی هاستت رو 2 کن

اینطوری برنامه میفهمه که 

1- این فایل جدیده 

2- باید اپدیت انجام شه

3- در صورت رضایت کاربر، عدد این اپدیت ذخیره میشه برای تشخیص بعدی

  • پسندیدم 1

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


لینک به ارسال
کامکار    25

این کارم میشه انجام داد که میگی

یه راه بهترم اینه که 

شما بیای و توی یه فایل تکست توی هاستت

یه عدد مثلا 1 رو قرار بدی

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

هر بار هم که اپدیت انجام میشه بیا و این عدد رو ذخیره کن

دفعه بعدی که اپدیت گذاشتی ، عدد توی هاستت رو 2 کن

اینطوری برنامه میفهمه که 

1- این فایل جدیده 

2- باید اپدیت انجام شه

3- در صورت رضایت کاربر، عدد این اپدیت ذخیره میشه برای تشخیص بعدی

 

آقا شهاب عزیز خسته نباشی

ممنون از آموزش و راهنمایی هات

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

این هم کل کد های آپدیت من و بگو کجا بذارم:

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	If FirstTime = True Then
	Activity.LoadLayout("1")
	fara.TwoLineAndBitmapTitr("news.db",sql1,cur,"SELECT * FROM new1",ListView1,"titr","matn","id","pic",bitmap1)
		ListView1.TwoLinesAndBitmap.SecondLabel.Gravity=Gravity.CENTER
	ListView1.TwoLinesAndBitmap.Label.Gravity=Gravity.RIGHT
	ListView1.TwoLinesAndBitmap.Label.Gravity=Gravity.RIGHT
	ListView1.TwoLinesAndBitmap.SecondLabel.Gravity=Gravity.RIGHT
	ListView1.TwoLinesAndBitmap.Label.Left = -2%x
	ListView1.TwoLinesAndBitmap.secondLabel.Left = -2%y
	ListView1.TwoLinesAndBitmap.Label.TextColor=Colors.Blue
	ListView1.TwoLinesAndBitmap.SecondLabel.TextColor=Colors.Green
	ListView1.Color=Colors.Gray
	pe.Initialize("pe")
	End If
End Sub
Sub pe_ConnectivityChanged (NetworkType As String, State As String, Intent As Intent)

	If State="CONNECTED" Then
	      
			Dim ht As HttpJob
	          	ht.Initialize("update",Me)
                          ProgressDialogShow("  برنامه در حال بروزرسانی می باشد.لطفا منتظر بمانید ")
                                 ht.Download("http://bayanbox.ir/download/5616858746303122179/news.db")
                                  


		Else
			'ToastMessageShow("اینترنت خاموش شد",False)
End If
	
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
  
End Sub

Sub JobDone(Job As HttpJob)
ProgressDialogHide
 If Job.Success Then
       If Job.JobName = "update" Then
             Dim ou As OutputStream
                        File.Delete(File.DirInternal,"news.db")
                        ou = File.OpenOutput(File.DirInternal,"news.db",False)
                            File.Copy2(Job.GetInputStream,ou)
                              ou.Close
			     	    End If
 End If
sql1.initialize(File.dirinternal,"news.db",True)
Activity_Create(True) 
End Sub

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


لینک به ارسال

ببین

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

یعنی روش اصلی بانک انلاینه

حالا اون به کنار

شما یه فایل تکست بساز با کامپیوترت

توش باشه 

1

اسم این فایل رو میذارم test.txt

این فایل رو اینجا اپ میکنم

domain.ir/

پس ادرس فایل میشه

domain.ir/test.txt

این از این

اینم از کداتون

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

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

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
Dim ht1 As HttpJob
Dim ht As HttpJob

End Sub
Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	If FirstTime = True Then
	Activity.LoadLayout("1")
	fara.TwoLineAndBitmapTitr("news.db",sql1,cur,"SELECT * FROM new1",ListView1,"titr","matn","id","pic",bitmap1)
		ListView1.TwoLinesAndBitmap.SecondLabel.Gravity=Gravity.CENTER
	ListView1.TwoLinesAndBitmap.Label.Gravity=Gravity.RIGHT
	ListView1.TwoLinesAndBitmap.Label.Gravity=Gravity.RIGHT
	ListView1.TwoLinesAndBitmap.SecondLabel.Gravity=Gravity.RIGHT
	ListView1.TwoLinesAndBitmap.Label.Left = -2%x
	ListView1.TwoLinesAndBitmap.secondLabel.Left = -2%y
	ListView1.TwoLinesAndBitmap.Label.TextColor=Colors.Blue
	ListView1.TwoLinesAndBitmap.SecondLabel.TextColor=Colors.Green
	ListView1.Color=Colors.Gray
	pe.Initialize("pe")
	End If
	ht.Initialize("job1")
	ht1.Initialize("update")
End Sub
Sub pe_ConnectivityChanged (NetworkType As String, State As String, Intent As Intent)

	If State="CONNECTED" Then
	      
		
	          	
                          ProgressDialogShow("  برنامه در حال بروزرسانی می باشد.لطفا منتظر بمانید ")
						   ht.PostString("http:domain.ir/test.txt","")
                                 
                                  


		Else
			'ToastMessageShow("اینترنت خاموش شد",False)
End If
	
End Sub
Sub JobDone(Job As HttpJob)
	ProgressDialogHide
	
	
	If Job.Success = True Then
		If Job.JobName = "job1" Then
			
							'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
			If File.Exists(File.DirInternal,"test.txt") = False Then
				
				
				
				

				File.WriteString(File.DirInternal,"test.txt",Job.GetString)
				ht1.PostString("http://bayanbox.ir/download/5616858746303122179/news.db","")
			else If
				
				If File.ReadString(File.DirInternal,"test.txt") = Job.GetString Then
					
					ToastMessageShow("barnaaame update ast ","up to date")
					
				else If
					
					ht1.PostString("http://bayanbox.ir/download/5616858746303122179/news.db","")
					File.WriteString(File.DirInternal,"test.txt",Job.GetString)
					
				End If
				

				
			End If
			
							''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
			
			
		else if Job.JobName = "update" Then
				
				Dim ou As OutputStream
				File.Delete(File.DirInternal,"news.db")
				ou = File.OpenOutput(File.DirInternal,"news.db",False)
				File.Copy2(Job.GetInputStream,ou)
				ou.Close
			
		End If
	End If
	
	sql1.initialize(File.dirinternal,"news.db",True)
	Activity_Create(True) 
	
	
End Sub

موفق باشید

  • پسندیدم 3

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


لینک به ارسال
کامکار    25

بررسی و اعمال می کنم

ان شا الله جواب بده

والله من هم دارم خسته میشم

باز هم ممنون و تشکر

 

 

شرمنده باز هم خطا میده:

سورس کامل برنامه

دانلود

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


لینک به ارسال
کامکار    25

آقا شهاب از  کم سوادی من نا امید نشین و جواب سوالای منو ندین!!

منتظر جوابتون هستم

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


لینک به ارسال
کامکار    25

آقا شهاب از  کم سوادی من نا امید نشین و جواب سوالای منو ندین!!

منتظر جوابتون هستم

این هم تصویری از محل خطا:

Capture.JPG

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


لینک به ارسال

اسپم زیاد میدیا برادر

نا امید یعنی چی :)

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

اصلا ربطی به پروسه اپدیتت نداره

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

  • پسندیدم 1

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


لینک به ارسال
کامکار    25

اسپم زیاد میدیا برادر

نا امید یعنی چی :)

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

اصلا ربطی به پروسه اپدیتت نداره

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

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

یعنی از سوالات من ان شا الله که خسته نمیشید همین

 

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

رای رفعش بایداز آریا لب استفاده کنم یا راه دیگه ای داره؟؟؟؟

عکسCapture.JPG

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


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

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

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

×