Italian Wait For (j) JobDone(j As HttpJob) Che palle!!!

Luciano Veneziano

Active Member
Licensed User
Longtime User
Senza alcuna polemica, ma è possibile che non funzioni un modo per inchiodare
l'esecuzione dell'app, fino a quando non mi ritorni il valore della query?
Scusate ma non frustrato dalla stupidità del problema che non riesco a risolvere.


Sub Post(sql As String,id As String) As ResumableSub
Dim text As String = URL&"sql.php"

Log("Query:"&text)

Dim j As HttpJob
j.Initialize("", Me)
j.PostString(text,"q="& sql)
Wait For (j) JobDone(j As HttpJob)
If j.Success Then
sqlResult = refresh(id,j.GetString)
End If
Log("SQLResult:"&sqlResult)
j.Release
End Sub

Sub selDevice()
Dim text As String
text = "SELECT * from users where cf = 300;"
Post(text,"uid") <----------------------------------------- Come lo fermo qui, fino a quando non ho il risultato?
uid = populateU(sqlResult)
End Sub
 

udg

Expert
Licensed User
Longtime User
Dovresti chiamare quel Post con un waitfor complete
 

Xfood

Expert
Licensed User
dovresti chiamare la funzione post in questo modo
Wait For (Post(text,"uid")) Complete
 

Xfood

Expert
Licensed User
se non vuoi warning del compilatore e' meglio scrivevere cosi

B4X:
Sub Post(sql As String,id As String) As ResumableSub
Dim text As String = URL&"sql.php"

Log("Query:"&text)

Dim j As HttpJob
j.Initialize("", Me)
j.PostString(text,"q="& sql)
Wait For (j) JobDone(j As HttpJob)
If j.Success Then
sqlResult = refresh(id,j.GetString)
End If
Log("SQLResult:"&sqlResult)
j.Release
return true
End Sub

Sub selDevice()
Dim text As String
text = "SELECT * from users where cf = 300;"
Wait For (Post(text,"uid")) Complete(Finito As Boolean)    '  cosi ritorna  un valore'
'Post(text,"uid") <----------------------------------------- Come lo fermo qui, fino a quando non ho il risultato?
uid = populateU(sqlResult)
End Sub
 

Luciano Veneziano

Active Member
Licensed User
Longtime User
No il contenitore sqlResult rimane vuoto, ovviamente la qury è giusta e verificata...
il risultato non contiene nulla perchè ha già fatto la seconda query che deve essere vuota per forza se non c'è la chiave d ricerca.
 

Attachments

  • image_2022-11-05_185003512.png
    27.2 KB · Views: 115
Last edited:

Xfood

Expert
Licensed User
hai messo il return true allafine della funzione Post? riga 15 dell'esempio sopra...
 

Luciano Veneziano

Active Member
Licensed User
Longtime User
Questo è il log

Logger connesso a: WIKO PULP 4G
--------- beginning of main
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
Call B4XPages.GetManager.LogEvents = True to enable logging B4XPages events.
** Activity (main) Resume **
EM2-002:34:81:F4:79:1B:07
sendString: A1
Query:https://www.xxxxx.it/sql.php Prima query... devo avere il risultato per madare il codice A2 invece non aspetta il risultato.
sendString: A2
sending message to waiting queue of uninitialized activity (submitjob) ??? CHE SIGNIFICA
Query:https://www.xxxxx.it/sql.php Seconda query con dati sbagliati
Devicefreqs: SECONDO
Devicefreqs: TERZO
Devicefreqs: PRUIMO
Devicefreqs: SECONDO
Devicefreqs: SECONDO
*** Service (httputils2service) Create ***
(Http client initialized with accept all option.)
** Service (httputils2service) Start **
** Service (httputils2service) Start **
ResponseError. Reason: , Response: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> Questa non la capisco, non ho mandato nessuna richiesta http penso sia la risposta alla prima query
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access this resource.</p>
<p>Additionally, a 403 Forbidden
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>
SQLResult:
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
Call B4XPages.GetManager.LogEvents = True to enable logging B4XPages events.
** Activity (main) Resume **
 

sirjo66

Well-Known Member
Licensed User
Longtime User
come già ti hanno detto hai due errori, ti manca un Return alla fine della sub Post e poi la chiamata alla funzione Post (vedi riga 15 e riga 21 del codice di Xfood
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…