Italian mySql Remoto, recordCount

grifoDev

Member
Licensed User
Longtime User
Ciao,
Poco fa' ho provato ad associare alla query della Count una variabile ... count (*) as num ,
e nella jobDone mi ritorna effettivamente il "num" ma poi si blocca li o perlomeno finisce la procedura
La recorcout mi serve per eseguire success. l update oppure l insert , ma bloccandosi li non
riesco a continuare con le success istruzioni
grz
 

LucaMs

Expert
Licensed User
Longtime User
Ciao,
Poco fa' ho provato ad associare alla query della Count una variabile ... count (*) as num ,
e nella jobDone mi ritorna effettivamente il "num" ma poi si blocca li o perlomeno finisce la procedura
La recorcout mi serve per eseguire success. l update oppure l insert , ma bloccandosi li non
riesco a continuare con le success istruzioni
grz
Quindi la prima query ti ha funzionato bene; bisogna vedere cosa fai nel resto, senza vedere il codice non è possibile aiutarti.
Inserisci dei Log per vedere cosa succede e capire dove si "blocchi".

[Non so se davvero ti serva conoscere il numero di record; certamente non per eseguire poi degli insert o update, ma questo è solo così, a naso, sai tu cosa dovrà fare il tuo progetto ;) ]
 

grifoDev

Member
Licensed User
Longtime User
Devo controllare il valore di un campo, se questo campo esiste eseguo update , altrimenti Insert;
se non eseguo questo controllo sara' impossibile decidere cosa fare tra aggiornare il record o appenderlo
perlomeno io ho sempre fatto cosi anche con Delphi.... magari con b4a esiste un altra soluzione...
 

grifoDev

Member
Licensed User
Longtime User
Inoltre i log non mi funzionano...mi avvisa soltanto (come log) che il collegamento col bridge tramite wifi e' avvenuto...
:(
 

LucaMs

Expert
Licensed User
Longtime User
Inoltre i log non mi funzionano...mi avvisa soltanto (come log) che il collegamento col bridge tramite wifi e' avvenuto...
:(
All'inzio dell'Activity, diciamo dopo la fine della Project Attributes, metti:

#BridgeLogger: True

(comunque, se stai avviando la tua app in modalità Debug dovresti ottenere i Log comunque - ed è in questa modalità che dovresti lavorare, altrimenti non capiresti mai dove l'app si blocchi).
 

grifoDev

Member
Licensed User
Longtime User
Ma sai che ho fatto tutto cio che mi hai suggerito, ma non vedo nulla nell area di debug.... prob
ci sara' qualche settaggio sul cellulare ... a trovarlo....
 

grifoDev

Member
Licensed User
Longtime User
Non ti preoccupare per le domande banalotte, falle pure!!! sono proprio queste che a volte ci sfuggono...
 

grifoDev

Member
Licensed User
Longtime User
ecco il log;
Logger connesso a: HUAWEI FRD-L09
--------- beginning of main
*** Service (Starter) Create ***
** Service (Starter) Start **
** Activity (main) Create, isFirst = True **
** Activity (main) Resume **
*** Service (HttpUtils2Service) Create ***
** Service (HttpUtils2Service) Start **
Risposta dal Server: [{"num":"1"}]
** Activity (main) Pause, UserClosed = True **
 

LucaMs

Expert
Licensed User
Longtime User
Beh, io "sotto mano" ho solo l'esempio di Erel. Non posso sapere perché la Main venga messa in pausa.

In quell'esempio viene solo lanciata una routine dall'interno della Activity_Create e, una volta scatenato l'evento JobDone, viene caricata una ListView dall'interno di questa.

Se puoi, pubblica almeno le parti "salienti", la routine JobDone (se non l'intero progetto, che ovviamente sarebbe meglio).
 
Last edited:

grifoDev

Member
Licensed User
Longtime User
Praticamente e' un copia e incolla dell esempio di erel . dove nel file PHP ho inserito le credenziali del mio database
la listView e' un refuso della copia. Se utilizzo Update/Insert il jobDone non serve (secondo me...), l ho inserito solo x vedere cosa mi ritornava
come recordCount.
Da un Click su una tabella:
Sql ="SELECT count(data) as num FROM miaTabella WHERE data =" & dat & ";"
ExecuteRemoteQuery(Sql,MY_LIST)
,,
,,
Sub ExecuteRemoteQuery(Query As String, JobName As String)
Dim job As HttpJob
job.Initialize(JobName, Me)
job.PostString("http://www.XXXX.altervista.org/mytest.php", Query)
end sub
 

LucaMs

Expert
Licensed User
Longtime User
la listView e' un refuso della copia.
"refuso" che vedi solo tu, noi non vediamo il tuo sorgente ;)

E quindi? Qual'è il problema? Quella query verrà eseguita e scatterà l'evento JobDone che riceverà l'oggetto Job con Job.Name uguale al contenuto della tua variabile My_LIST (che dev'essere una variabile stringa contenente appunto il nome da associare al Job).

Avevi detto che funzionava ed ottenevi il numero di record restituito dalla query (num).
 

grifoDev

Member
Licensed User
Longtime User
Quando esegue la JobDone e' vero mi ritorna il n.record
ma non riesco a proseguire ... il tutto termina li. Non riesco ad utilizzare
quella variabile per altre query . Il problema e' solo questo!
Ed aggiungerei che il problema sono pure io hihihihi
 

LucaMs

Expert
Licensed User
Longtime User
Prova qualcosa del genere:

B4X:
'....
        Select Job.JobName
            Case My_LIST
                Dim Num As Int = '...
                ' Chiama la routine di inserimento/aggiornamento
                TuaRoutine(Num)
            Case "InserimentoOAggiornamento"
        End Select
    Else
        Log(Job.ErrorMessage)
        ToastMessageShow("Error: " & Job.ErrorMessage, True)
    End If
    Job.Release

B4X:
Sub TuaRoutine(Num As Int)
'...
    ExecuteRemoteQuery("TUA QUERY QUI", "InserimentoOAggiornamento")
End Sub
' ....
 
Top