Gambas-it
Gambas3 => Programmazione => Topic aperto da: fernando - 24 Aprile 2012, 18:30:48
-
Salve
desidererei porre due quesiti, che non riesco a risolvere da parecchi giorni:
Avendo una tabella con dei record, nell'evento click di un button inserisco il seguente codice
Dim id As String
Dim sName As String
Dim sPercorso As String
Dim $hConn As New Connection
Dim hres As Result
Dim sql As String
sName = "Cdar1"
sPercorso = User.Home
With $hConn
.Type = "sqlite3"
.Host = sPercorso
'''.Login = ""
' .Password = ""
End With
$hConn.Name = sName
$hConn.Open
id = Label6.Text
hres = $hConn.edit("Catalogo", "id=" & id)
hres.Delete
$hconn.Commit
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
textbox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
textbox7.Text = ""
$hConn.Close
Per evidenziare il record da eliminare mi sposto sulla gridview e nell'evento click inserisco :
Dim iRow As String
Dim id As String
Dim sName As String ' sName è una variabile che indica il nome che diamo al nostro database
Dim sPercorso As String ' indica il percoso in cui andremo a creare il db
Dim $hConn As New Connection
Dim hres As Result
Dim sql As String
Dim i As Integer
sName = "Cdar1"
sPercorso = User.Home
With $hConn
.Type = "sqlite3"
.Host = sPercorso
'''.Login = ""
' .Password = ""
End With
$hConn.Name = sName
$hConn.Open
iRow = GridView1.Row
sql = "SELECT * FROM Catalogo WHERE Autore LIKE '" & Replace(TextBox9.Text, "'", "''") & "%'"
hres = $hconn.Exec(sql) ' esegue la query
If iRow <> -1 Then
hres.MoveTo(iRow)
Id = hres!id
hres = $hConn.edit("Catalogo", "Id=" & id)
TextBox1.Text = hres!Autore
TextBox2.Text = hres!TitoloBrano
TextBox3.Text = hres!Durata
TextBox4.Text = hres!Ncd
TextBox5.Text = hres!Genere
TextBox6.Text = hres!AnnoProduzione
TextBox7.Text = hres!TitoloCd
TextBox8.Text = hres!id
end if
il primo record lo elimina , ma poi mi ad esempio spostandomi sul terzo record viene fuori l'errore : result is not Available
come posso risolvere questo problema ?
secondo quesito
come faccio a spostarmi tra i record di una tabella ? con ad esempio 'hres.movenext' si sposta solo di un record, ma non scorre gli altri record.
Spero di essere stato chiaro nell'esporre i quesiti, grazie anticipatamente
cordiali saluti
-
Ciao
L'errore mi sembra di capire sia dovuto al fatto che una volta che hai cancellato un record devi riaggionare la griglia, cioè ricaricarla perchè ha un numero di righe superiore ai record del database, almeno mi sembra :).
Dovresti guardarti gli esempi che trovi nell'area download, ne avevo fatto uno con mysql, ma è la stessa cosa per sqlite.