Connessione Remota MySql su Register

Altra domanda da principiante… grazie per la pazienza.

Sto provando da Xojo versione 20105 Release 3.1 non ancora acquistato a fare una connessione a un MySql

Hosting su register.it

Versione Versione MySQL: 5.5.34-enterprise-commercial-advanced-log

Leggendo la documentazione ho fatto come sotto , creando un bottone e mettendo il codice sotto il metodo action in una banale finestra.

Mi da sempre errore di connessione ( 10060 ) , non si connette , bench i parametri siano corretti.

Tento da casa mia , dal mio pc, non da un programma deployed sul sito , non potendo ancora farlo in fase di pre acquisto.

Cosa sbaglio ? Devo aggiungere qualche classe o cosa ?

Dim db As New MySQLCommunityServer

db.Host = “hostingmysql331.register.it”
db.UserName = “xojotest”
db.Password = “*************”
db.DatabaseName = “provamysql”

If db.Connect Then
MsgBox(“Connected to MySql”)
Else
MsgBox("Error connecting to MySql: " + db.ErrorMessage)
End If

E oltre a quanto sopra se dovessi fare un accesso ODBC ?

Sei sicuro che register accetti connessioni remote?
Di solito questi servizi accettano solo connessioni dall’interno della loro rete (ad esempio da un tuo sito pubblicato presso di loro)

L’errore 10060 proprio un errore dovuto al tentativo di accedere al db remotamente da un indirizzo non permesso (e potrebbero essere tutti quelli al di fuori di register). Puoi provare a vedere se dal cPanel puoi abilitare il tuo indirizzo (se vuoi e puoi connetterti da un solo indirizzo)

Altrimenti una soluzione costruire un’applicazione PHP che faccia da ponte tra la tua app e mySql (hai una leggera perdita di performance, ma controllo sul flusso, anche se non proprio semplicissimo crearne una completa)

Se puoi avere una connessione in ODBC, Xojo pu accedere tranquillamente a questo tipo di connessione. Ma anche in questo caso hai una perdita di performance (non notevolissima, ma presente. In fin dei conti sempre uno strato software che si interpone)

Ho avuto lo stesso dubbio … se avessero fatto il binding su local host per impedire connessioni… ma la risposta no .
Lo dico perch ho fatto una prova e mi sono caricato sul mio pc MySql-Front ( lo trovi a http://www.mysqlfront.de/) e si connette tranquillamente senza problemi.
Oggi ho provato ad aggiornare la versione di prova xojo a 2015 R4 va. I parametri sono gli stessi… non saprei che dire .
Grazie per la riposta . Comunque per chiudere qualche consiglio ? Il codice scritto va bene o se puoi qualche suggerimento da “esperienza vissuta” ? Ad esempio prima di uscire dalla web application devo chiudere la connessione al database o va gi da sola ? Quando molti anni fa programmavo su grossi sistemi IBM non me ne preoccupavo del database ma questo un mondo nuovo per me…

Bene, se risolto. Forse la versione che utilizzavi prima aveva qualche problema nel plugin.
La modalit di connessione corretta.
L’unico suggerimento quello di impostare immediatamente la connessione a UTF8 (visto che noi italici tendiamo ad usare caratteri un po’ pi estesi degli americani :wink: )
Allo stesso modo quando leggi i dati da un record set ricordati che le stringhe sono impostate con encoding nullo, per cui prima di leggere effettivamente il dato imposta il suo encoding a utf8 (nel forum dovresti trovare una estensione al recordset chiamata utfValue che implementa questo direttamente in modo da poterla utilizzare come utilizzeresti una stringValue)

Altri consigli:
Tieni conto che la connessione potrebbe essere stata chiusa (per vari motivi) quindi non dare per scontato che si aperta (controlla eventualmente l’errore e riconnettiti nel caso)
In ogni caso la connessione (a meno appunto di motivi di sistema) rimane per il tempo di esistenza per cui ti conviene legarla o ad una richiesta specifica o quanto meno alla sessione. Non usarne una unica a livello di applicazione perch se una web app puoi avere pi client connessi contemporaneamente ed avresti un collo di bottiglia nella tua applicazione.

Stasera il problema riapparso.
Ho preso il programma di esempio dalla cartella Example/Database /MySQLExample_xojobinary e messo gli estremi per il login.
E’ andato bene per un po’ ed improvvisamente non si connette pi… non c’ verso
La cosa assurda che se sono sulla stessa app e vado App -->Insert–>Database --> MysqlComunityServer e lo aggiungo lo vede e lo mostra… vedo le tabelle. Usando la stesso App e premendo il bottone Connect con la action standard del codice di esempio non va…
Comincio a pensare che si a qualcosa nel plugin di xojo relativo a questa porzione di codice ( bottone Connect ) dato che con altri tools accedo senza problemi.
Sarebbe da riportare come potenziale Bug ma non posso farlo.
Se vuoi ti passo gli estremi progetto e password e lo segnali se lo ritieni. Al momento mi arrendo.

mDb = New MySQLCommunityServer

mDb.Host = “hostingmysql331.register.it”
mDb.UserName = “xojotest”
mDb.Password = “*********!”
mDb.DatabaseName = “provamysql”

If mDb.Connect Then
mIsConnected = True
ConnectStatusLabel.Text = “Connected to MySQL”
Else
mIsConnected = False
ConnectStatusLabel.Text = "Error connecting to MySQL: " + mDb.ErrorMessage
End If