|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2003
Messaggi: 67
|
Inserimento record VISUAL BASIC + mysql
Ciao a tutti.
Non riesco ad inserire i record nelle tabelle mysql. Mi interfaccio con le OLEDB tramite le ADO, eseguo le tre istuzioni per inserire il record, ma questo non si inserisce nonostante non mi venga generato nessun errore. Qualcuno sa dirmi il perchè? Premetto che la lettura dei record avviene in modo normale, senza problemi. Allego qua sotto alcuni pezzi di codice che utilizzo. Grazie a tutti per le risposte. CONNESSIONE AL DB: Public conn As ADODB.Connection Public comm As Command Set conn = New ADODB.Connection conn.Provider = "MySQLProv" conn.Properties("Data Source") = "DSN=max;SERVER=localhost;DB=Elegest;uid=root;pwd=;port=3306" conn.Open Set comm = New ADODB.Command Set comm.ActiveConnection = conn APERTURA DEL RECORDSET: Public Sub ApriRecordset(ByRef r As ADODB.Recordset, ByVal S As String) On Error GoTo abc Set r = New ADODB.Recordset r.CursorLocation = adUseClient r.Open S, conn, adOpenStatic, adLockBatchOptimistic Exit Sub abc: MsgBox Err.Description End Sub INSERIMENTO RECORD: Dim rec As ADODB.Recordset ApriRecordset rec, "select * from anmagazzini" rec.AddNew rec!desmag = txtMAG.Text rec.Update ' Nessun errore, ma nessun record inserito ![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
|
tu apri il record usando il lock di tipo Batch 'adLockBatchOptimistic'.
Utilizzando questa modalità l'update del recordset viene eseguito solo quando richiami il metodo .UpdateBatch Un recordset con aggiornamento Batch ha il vantaggio che tutte le modifiche apportate con il metodo .update vengono memorizzate ed eseguite in blocco quando si chiama appunto il metodo .UpdateBatch. Se per esempio esegui un ciclo in cui inserisci tanti record via Recordset ti conviene usare questo metodo, altrimenti apri il recordset con l'opzione adLockOptimistic. CONSIGLIO: Se puoi utilizza sempre il linguaggio SQL per ottenere il tuo set di dati (ES: "INSER INTO ...", "UPDATE tblXXX ... ", Ecc ...) perchè le operazioni sui recordset sono MOLTO + lente (Circa 30 volte di +). Spero di esserti stato di aiuto ... x ogni chiarimento chiedi pure. Ciao ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:15.