Autore Topic: [RISOLTO]SQLite3 record null  (Letto 612 volte)

Offline naderit

  • Grande Gambero
  • ***
  • Post: 140
    • Mostra profilo
[RISOLTO]SQLite3 record null
« il: 30 Novembre 2014, 10:57:01 »
Ciao
vi pongo il seguente quesito, a cui non riesco a venirne a capo,:
Ho un database regolarmnete creato, e non ancora popolato, e fino qui tutto ok, quanto vado a leggere i record con il seguente codice mi da errore.
Codice: [Seleziona]
Public Sub Button4_Click()

Dim db_anagrafica As New Connection
Dim rs_soci As Result  
Dim sql As String
Dim codice As Integer

With db_anagrafica
  .Type = "sqlite3"
  .Host = Application.Path
  .Name = "anagrafica"
  .Open
 
End With
rs_soci = db_anagrafica.Exec("SELECT * FROM soci") ' query di selezione
rs_soci.MoveLast ' ultimo record

Label10.text = rs_soci!idsoci ' leggo il valore

End

questo è solamente di prova, ma se nel database inserisco almeno un record il tutto funziona, la mia domanda:
esiste un'istruzione che mi riconosca il campo nullo e mi restituisca un valore che io possa gestire, senza dover per forza scrivere il primo record nel database?

grazie
« Ultima modifica: 14 Dicembre 2014, 18:29:56 da naderit »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: SQLite3 record null
« Risposta #1 il: 30 Novembre 2014, 14:50:45 »
la mia domanda:
esiste un'istruzione che mi riconosca il campo nullo e mi restituisca un valore che io possa gestire, senza dover per forza scrivere il primo record nel database?

Io di database non ne so... Null, però posso ricordare che - in generale - per sapere se una variabile è nulla, si utilizza la funzione IsNull(), che restituisce un valore booleano.
Esempio:
Codice: gambas [Seleziona]
Dim s As String

   If IsNull(s) Then Print "La variabile 's' è nulla !"


Non so, però, se e come è adattabile al tuo problema.  :-\
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: SQLite3 record null
« Risposta #2 il: 02 Dicembre 2014, 14:37:13 »
prova così

Codice: gambas [Seleziona]
rs_soci = db_anagrafica.Exec("SELECT * FROM soci") ' query di selezione 

If rs_soci.Available = True Then
rs_soci.MoveLast ' ultimo record
Label10.text = rs_soci!idsoci ' leggo il valore
end if

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: SQLite3 record null
« Risposta #3 il: 02 Dicembre 2014, 15:47:38 »
Durante i miei primi approcci con SQLite ho affrontato anch'io il problema di tabelle del DB vuote. Allora ho affrontato il problema con istruzioni come le seguenti:

Codice: gambas [Seleziona]
 RecTab = ApriDB.DBConnection.edit($NomeTabellaDb)
 iConta = RecTab.Count     'estrae il n° di record presenti nella tabella corrente del DB
 If iConta = 0 Then
     print "Tabella '" & $NomeTabellaDb & "' = vuota"
 else
   print "La Tabella '" & $NomeTabellaDb & "' contiene n° '" & iConta & "'"
 endif


Così facendo non avrai nemmeno bisogno di eseguire una Select di lettura del DB.

 :ciao:
:ciao:

Offline naderit

  • Grande Gambero
  • ***
  • Post: 140
    • Mostra profilo
[RISOLTO] SQLite3 record null
« Risposta #4 il: 14 Dicembre 2014, 18:28:36 »
Grazie mille :ok: