Gambas-it

Gambas3 => Programmazione => Topic aperto da: aulin - 14 Dicembre 2012, 11:10:30

Titolo: Conoscere l'indice dell'ultimo record inserito
Inserito da: aulin - 14 Dicembre 2012, 11:10:30
Premessa:
Mysql : ho una tabella, faccio una query e decido di inserire un altro record. Nel record l'indice si chiama mov_id. QUindi faccio la create, passo i parametri nei campi del record e alla fine update. Perfetto. A questo punto posso conoscere l'indice mov_id appena inserito senza dover rifare una query?
Titolo: Re: Conoscere l'indice dell'ultimo record inserito
Inserito da: milio - 14 Dicembre 2012, 21:54:18
Puoi fare in questo modo:

Private Function InserisciRecordeRitornaId() As Integer
Dim Sql As String
Dim tuo_record As Result
Dim tua_connessione As New Connection

  With tua_connessione
    .Host = tuo_host
    .Name = tuo_dbname
    .Port = tua_port
    .User = tuo_user
    .Password = tua_password
  End With

  Sql = "BEGIN; " &
        "INSERT INTO tua_tabella (campo1, campo2) VALUES (1,2); " &
        "SELECT LAST_INSERT_ID(); " &
        "END;"

  tuo_record = tua_connessione.Exec(Sql)

  Return tuo_record[0]
End


Logicamente la tabella dovra' avere un campo chiave integer autoincrementato.
Titolo: Re: Conoscere l'indice dell'ultimo record inserito
Inserito da: aulin - 14 Dicembre 2012, 22:59:54
Intanto Milio grazie per la cortese risposta.
Sto cercando di adattare il tuo codice al mio prg ed ho fatto in questo modo:
Codice: [Seleziona]
       
            sTabella = m1.sPrefix & "causali"
            hRecMod = M1.$hconn.Create(sTabella)
            hRecMod!cau_sigla = TB_Sigla.Text
            hRecMod!cau_descrizione = TB_Descrizione.Text
            hRecMod.Update
           
           sql = "SELECT LAST_INSERT_ID() "

            hRecMod = M1.$hconn.Exec(sql)  ' esegue la query
           
           Print "ID ", hRecMod.Available, hRecMod.Count
           Print hRecMod!cau_sigla
           
Stranamente  hRecMod.Available è true e hRecord.Counti =1  però va in errore sulla print successiva. Suggerimenti?
Titolo: Re: Conoscere l'indice dell'ultimo record inserito
Inserito da: milio - 16 Dicembre 2012, 00:36:51
e se provi Print hRecMod[0]... ?