Autore Topic: Blocco inaspettato oggi  (Letto 2243 volte)

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Blocco inaspettato oggi
« il: 25 Settembre 2010, 07:27:24 »
myZone, ho ricevuto un blocco di questo tipo (con segnale 6 o 11), ancora non so se è colpa del mio codice o di G3, provo anche G2 oggi.

La routine su cui si verifica l'errore è semplice, quando clicco all'interno di una list-box e riporto i dati su vari textbox. G2 sulla stesso codice non da' errore.
« Ultima modifica: 25 Settembre 2010, 12:16:31 da andy60 »

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Blocco inaspettato oggi
« Risposta #1 il: 25 Settembre 2010, 15:13:29 »
myZone, ho ricevuto un blocco di questo tipo (con segnale 6 o 11), ancora non so se è colpa del mio codice o di G3, provo anche G2 oggi.

La routine su cui si verifica l'errore è semplice, quando clicco all'interno di una list-box e riporto i dati su vari textbox. G2 sulla stesso codice non da' errore.

L'errore 11 è dovuto ad un crash dell'IDE e quindi può essere che il tuo codice sia giusto ma l'IDE è buggato....

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Blocco inaspettato oggi
« Risposta #2 il: 25 Settembre 2010, 15:53:27 »
Avendo una grande idiosincrasia x QT, ho rimesso tutto (in realta' mai lasciato..) su G2 con GTK. Aspettando tempi migliori (leggasi meno bugs) per G3

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Blocco inaspettato oggi
« Risposta #3 il: 25 Settembre 2010, 16:35:48 »
E' possibile vedere il pezzo di codice che ti genera l'errore? vorrei fare qualche prova...

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Blocco inaspettato oggi
« Risposta #4 il: 25 Settembre 2010, 17:04:23 »
E' possibile vedere il pezzo di codice che ti genera l'errore? vorrei fare qualche prova...

dato che l'errore lo fa anche il form da solo (ho provato anche questo..) posso girartelo...ma stasera, adessa sono in ufficio purtroppo ...per un evento :'(

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Blocco inaspettato oggi
« Risposta #5 il: 25 Settembre 2010, 17:07:09 »
Ok ci aggiornato stasera

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Blocco inaspettato oggi
« Risposta #6 il: 25 Settembre 2010, 17:11:17 »
a memoria:

Codice: [Seleziona]
dim mycon as new connection
dim myres as result

with myconn
..
..

end with

'ricerco il record a partire dal campo testo dell'alimento nel combo
'combo già popolato precedentemente

myres=myconn.exec("select * from ...where alimento=&1", combobox.text)
'attribuisco i valori della tabella
txtC.text=myres!C
....
myconn.close

ora che te l'ho scritto mi è venuto un dubbio sul codice, ma non ho il portatile davanti, controllo stasera.. possibile che alcuni valori posti nel combobox.text creino casino?
tieni presente che su G2 funziona a meraviglia



« Ultima modifica: 25 Settembre 2010, 17:16:42 da andy60 »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Blocco inaspettato oggi
« Risposta #7 il: 25 Settembre 2010, 17:42:13 »
la struttura di segnalazioni errori di g3 è ancora traballante, è probabile che ci sia un errore nel codice, dovresti provare a  lanciare l' applicazione come eseguibile e vedere come si comporta, se è un errore di codice di apparirà il relativo messaggio, se è un problema di g3 crasherà,

prova inoltre a mettere un istruzione catch in fondo al codice con il problema così magari hai una segnalazione migliore

Codice: [Seleziona]
 Catch
                             
                           
                             Message.Error(Error.Where & " \n" & Error.Text, "ok")

io sto lavorando molto con g3 (sto scrivendo la nuova versione di gesthotel) e a parte questi problemi nel debug dell' ide direi che è stabile e affidabile quanto g2

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Blocco inaspettato oggi
« Risposta #8 il: 25 Settembre 2010, 19:06:13 »
la struttura di segnalazioni errori di g3 è ancora traballante, è probabile che ci sia un errore nel codice, dovresti provare a  lanciare l' applicazione come eseguibile e vedere come si comporta, se è un errore di codice di apparirà il relativo messaggio, se è un problema di g3 crasherà,

prova inoltre a mettere un istruzione catch in fondo al codice con il problema così magari hai una segnalazione migliore

Codice: [Seleziona]
 Catch
                             
                           
                             Message.Error(Error.Where & " \n" & Error.Text, "ok")

io sto lavorando molto con g3 (sto scrivendo la nuova versione di gesthotel) e a parte questi problemi nel debug dell' ide direi che è stabile e affidabile quanto g2

grazie provo :-*

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Blocco inaspettato oggi
« Risposta #9 il: 25 Settembre 2010, 20:50:41 »
ecco il codice che crasha:


Codice: [Seleziona]
Public Sub lstALIMENTI_Click()
 
  Dim myconn As New Connection
  Dim myset As Result
 
  With myconn
      .Name = "/home/andy/Gambas3/myZone/data/myZone.db"
      .Type = "sqlite3"
      .Open 
  End With
 
  myset = myconn.Exec("select * from tbMiniblocchi where ALIMENTO=&1", lstALIMENTI.Text)
  mLibs.AlimentoSelezionato = myset!ID 
  mLibs.GrammiAlimentoSelezionato = myset!GRAMMI

  txtP.text = myset!P
  txtC.text = myset!C
  txtG.Text = myset!G
  txtGRAMMI.text = myset!GRAMMI
  txtGiudizio.text = myset!SCELTA
  txtALIMENTO.text = myset!ALIMENTO
   
  Catch
  Message.Error(Error.Where & " \n" & Error.Text, "ok")
  myconn.Close 
 
End

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Blocco inaspettato oggi
« Risposta #10 il: 25 Settembre 2010, 20:55:10 »
Prova a gestire i valori Null dei vari Record:

Codice: gambas [Seleziona]
If Not IsNull(myset!P) Then
  txtP.Text = myset!P
Else
  txtP.Text = ""
EndIf


Ho avuto problemi di questo genere per con il componente GridBox...
Gambas andava in crash senza ritornarmi errori...

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Blocco inaspettato oggi
« Risposta #11 il: 25 Settembre 2010, 21:31:09 »
dovresti anche controllare che il result è pieno prima di utilizzarlo per riempire delle variabili

Codice: gambas [Seleziona]



myset = myconn.Exec("select * from tbMiniblocchi where ALIMENTO=&1", lstALIMENTI.Text)
if myset.availabe then

  mLibs.AlimentoSelezionato = myset!ID 
  mLibs.GrammiAlimentoSelezionato = myset!GRAMMI

  txtP.text = myset!P

ecc ecc ecc


non ho mai utilizzato myconn.exec passadogli dei parametri oltre alla query di ricerca, sei sicuro che questa riga sia corretta?
myset = myconn.Exec("select * from tbMiniblocchi where ALIMENTO=&1", lstALIMENTI.Text)


hai provato ad avviare il programma tramite eseguibile?

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Blocco inaspettato oggi
« Risposta #12 il: 25 Settembre 2010, 21:52:00 »
dovresti anche controllare che il result è pieno prima di utilizzarlo per riempire delle variabili

Codice: gambas [Seleziona]



myset = myconn.Exec("select * from tbMiniblocchi where ALIMENTO=&1", lstALIMENTI.Text)
if myset.availabe then

  mLibs.AlimentoSelezionato = myset!ID  
  mLibs.GrammiAlimentoSelezionato = myset!GRAMMI

  txtP.text = myset!P

ecc ecc ecc


non ho mai utilizzato myconn.exec passadogli dei parametri oltre alla query di ricerca, sei sicuro che questa riga sia corretta?
myset = myconn.Exec("select * from tbMiniblocchi where ALIMENTO=&1", lstALIMENTI.Text)


hai provato ad avviare il programma tramite eseguibile?

l'sql parametrica fatta cosi'  è fonte 'Leo Miliani'..si puo' anche usare l'altra modalità:

Codice: [Seleziona]
myset = myconn.Exec("select * from tbMiniblocchi where ALIMENTO=' " & lstALIMENTI.Text & " ')"

sempre fatte cosi' mai dato problemi..invece mi interessa il result

se è disponibile si trova con myres.available

come faccio a svuotarlO? a capire se è pieno? se il result non è public mi risulta che sia distrutto alla fine della routine
« Ultima modifica: 25 Settembre 2010, 21:53:58 da andy60 »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Blocco inaspettato oggi
« Risposta #13 il: 25 Settembre 2010, 22:13:25 »
a svuotarlo ci pensa gambas

se è "pieno" o meglio se non è nullo o vuoto sarà availabe e quindi utilizzabile  (count >0) se invece è vuoto(count=0 oppure result=NULL) cercare di utilizzarlo per dare un valore a una variabile genera errore

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Blocco inaspettato oggi
« Risposta #14 il: 25 Settembre 2010, 22:41:29 »
a svuotarlo ci pensa gambas

se è "pieno" o meglio se non è nullo o vuoto sarà availabe e quindi utilizzabile  (count >0) se invece è vuoto(count=0 oppure result=NULL) cercare di utilizzarlo per dare un valore a una variabile genera errore

per me è l'ide, G2 è perfetto con lo stesso codice