Ciao Raga
Ho la necessità di connettere più pc allo stesso database
Mi serve bloccare la Tabella quando un pc la sta usando per impedire che altri pc possano modificare quella tabella
questo è il codice con cui mi collego
Dim sql As String
Dim MyRSA As Result
sql = "select * from azienda order by idazienda"
MyRSA = MODMain.MyConn.Exec(sql)
Mi servirebbe
Dim sql As String
Dim MyRSA As Result
'Codice Lock Table azienda
sql = "select * from azienda order by idazienda"
MyRSA = MODMain.MyConn.Exec(sql)
'Codice unlock Table azienda
Ti passo la traduzione di questa risposta di Minisini a Bengino qui:
https://lists.gambas-basic.org/pipermail/user/2008-May/019775.html
È possibile utilizzare una tabella per creare blocchi di database in questo modo:
1) Creare una tabella denominata 'LOCK'.
2) Questa tabella ha, ad esempio, un campo 'Nome'.
3) Questa tabella ha un indice -unique- su 'Nome'. In altre parole, rendere 'Nome' la chiave primaria
.
4) Per impostare un blocco, basta creare un record all'interno della tabella 'LOCK'. Se la creazione di
non è riuscita, significa che il blocco è stato impostato da un altro client. Quindi puoi
aspettare un po' e riprovare. In caso contrario, se la creazione ha esito positivo, si dispone del blocco e si può continuare.
5) Una volta che hai il blocco, crea il tuo record nell'altra tabella (con il campo
autoincrement), leggi l'ultimo campo autoincrement utilizzato con una richiesta SQL
, e così via...
6) Una volta terminato il processo, rilasciare il blocco distruggendo il record
creato in 3).
L'indice primario su LOCK garantisce che il blocco sia impostato in modo atomico.
Saluti,
--
Benoit Minisini