Gambas-it

Gambas3 => Programmazione => Topic aperto da: andy60 - 25 Settembre 2010, 07:27:24

Titolo: Blocco inaspettato oggi
Inserito da: andy60 - 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.
Titolo: Re: Blocco inaspettato oggi
Inserito da: Ceskho - 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....
Titolo: Re: Blocco inaspettato oggi
Inserito da: andy60 - 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
Titolo: Re: Blocco inaspettato oggi
Inserito da: milio - 25 Settembre 2010, 16:35:48
E' possibile vedere il pezzo di codice che ti genera l'errore? vorrei fare qualche prova...
Titolo: Re: Blocco inaspettato oggi
Inserito da: andy60 - 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 :'(
Titolo: Re: Blocco inaspettato oggi
Inserito da: milio - 25 Settembre 2010, 17:07:09
Ok ci aggiornato stasera
Titolo: Re: Blocco inaspettato oggi
Inserito da: andy60 - 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



Titolo: Re: Blocco inaspettato oggi
Inserito da: fsurfing - 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
Titolo: Re: Blocco inaspettato oggi
Inserito da: andy60 - 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 :-*
Titolo: Re: Blocco inaspettato oggi
Inserito da: andy60 - 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
Titolo: Re: Blocco inaspettato oggi
Inserito da: milio - 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...
Titolo: Re: Blocco inaspettato oggi
Inserito da: fsurfing - 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?
Titolo: Re: Blocco inaspettato oggi
Inserito da: andy60 - 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
Titolo: Re: Blocco inaspettato oggi
Inserito da: fsurfing - 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
Titolo: Re: Blocco inaspettato oggi
Inserito da: andy60 - 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
Titolo: Re: Blocco inaspettato oggi
Inserito da: fsurfing - 26 Settembre 2010, 06:20:34
hai provato a lanciare l' eseguibile del tuo programma?
Titolo: Re: Blocco inaspettato oggi
Inserito da: andy60 - 26 Settembre 2010, 10:09:42
hai provato a lanciare l' eseguibile del tuo programma?

Buongiorno, esce senza messaggi...cmq sto andando avanti su G2, fortunatamente avevo portato avanti sui versioni.  xPenso sia un bug dell'ide. Anche xche' di query ne ho fatte a centinaia e hanno sempre funzionato... :-\