Autore Topic: delete record  (Letto 530 volte)

Offline fernando

  • Gambero
  • **
  • Post: 63
    • Mostra profilo
delete record
« il: 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

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: delete record
« Risposta #1 il: 25 Aprile 2012, 14:23:03 »
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.