Scherzo, eh; mi sento immotivatamente (dovrei scrivere "stupidamente") allegro"♪♫... e come stai? Domanda inutile ♪♫"
Scherzo, eh; mi sento immotivatamente (dovrei scrivere "stupidamente") allegro"♪♫... e come stai? Domanda inutile ♪♫"
Ma se volessi utilizzare due database mySQL1 e mySQL2 posso utilizzare una sola ConnectionPool o ne devo istanziare due distinte ?
Si vede che il caffé ti ha fatto bene!mi sento immotivatamente (dovrei scrivere "stupidamente") allegro
Forse non dormire mi fa bene (dalle 2 alle 6, la notte scorsa).Si vede che il caffé ti ha fatto bene!
Public Sub MainPgm()
InitDB
tmrMAIN.Enabled = True
End Sub
Sub tmrMAIN_Tick
tmrMAIN.Enabled = False
getData_1
GetDaora
putData_1(ValDaoraUnico)
tmrMAIN.Enabled = True
End Sub
Public Sub InitDB
Try
ConPool.Initialize("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:8889/DB64?characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull", "root", "root")
Log("DB Opened")
Catch
Log("Last Pool Init Except: "&LastException.Message)
End Try
Dim jo As JavaObject = ConPool
jo.RunMethod("setMaxPoolSize", Array(100))
End Sub
Public Sub putData_1(Valdaora As String)
mySql_DB64 = ConPool.GetConnection
mySql_DB64.BeginTransaction
Try
mySql_DB64.ExecNonQuery($"UPDATE SerialDataAllDevice SET dataora = "$ & Valdaora & $" WHERE id = 1 ;"$)
mySql_DB64.TransactionSuccessful
Catch
Log("Error putData 1")
mySql_DB64.Rollback
End Try
mySql_DB64.Close
End Sub
Public Sub getData_1
mySql_DB64 = ConPool.GetConnection
mySql_DB64.BeginTransaction
Try
Dim RS As ResultSet
RS = mySql_DB64.ExecQuery($"SELECT * FROM Servizi WHERE Servizio = '01';"$)
RS.NextRow
ListView1.Items.Add(RS.GetString("Lettera") & "-" & RS.GetString("Descrizione1"))
mySql_DB64.TransactionSuccessful
Catch
Log("Error getData 1")
mySql_DB64.Rollback
End Try
RS.Close
mySql_DB64.Close
End Sub
Non mi va di studiare, so' troppo vecio .unico dubbio che ho ' se il "mySql_DB64 = ConPool.GetConnection" va realmente definito prima di ogni "mySql_DB64.BeginTransaction" o solo una volta ad inizializzazione DB.
Qui metterei una variabile di ritorno boolean che ti faccia sapere se la connessione sia stata stabilita, altrimenti qui:Public Sub InitDB
avvieresti comunque il timer, generando altri errori, in caso di fallita connessione.Public Sub MainPgm()
InitDB
tmrMAIN.Enabled = True
End Sub
Public Sub InitDB As Boolean ' <---
Dim Result As Boolean = True ' <---
Try
ConPool.Initialize("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:8889/DB64?characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull", "root", "root")
Log("DB Opened")
Catch
Log("Last Pool Init Except: "&LastException.Message)
Dim jo As JavaObject = ConPool
jo.RunMethod("setMaxPoolSize", Array(100))
Result = False
End Try
Return Result
End Sub
Public Sub MainPgm()
If InitDB Then
tmrMAIN.Enabled = True
Else
' vedi tu
End If
End Sub
Sbaglio o, leggendo il log, vedo che hai eseguito due connessioni???in fase definitiva, saranno tre programmi (differenti) che accederanno allo stesso Database
Va benissimo; io uso XAMPP.Come server locale MAMP (non Pro) va bene o mi consigliate qualcos'altro (Windows 7) ?
Risposta: non lo soPosso accedere da più programmi allo stesso mySql con lo stesso nome utente o ne occorre uno per ogni programma ? (io uso sesse credenziali per tutti i programmi)