ciao raga
ho un problema su un database mysql che si è presentato dopo un aggiornamento di gambas.
dalle una delle prime versioni da gambas 3 ho creato un database mysql da codice e usato sempre lo stesso anche con i successivi aggiornamenti di gambas, l database ha sempre funzionato, ora ho aggiornato a gambas 3.8 e nel caricare i dati da quel database i campi id (numerici) delle tabelle diventano booleani.
per creare le tabelle ho usato questo codice :
If $hconn.Tables.Exist("lesenzione") = True Then
Message.info("la tabella lesenzione esiste")
Else
If Message.Question("Creo la Tabella lesenzione?", "Si", "No") = 1 Then
sql = "CREATE TABLE lesenzione ("
sql &= "idlesenzione MEDIUMINT NOT NULL auto_increment,"
sql &= "legge VARCHAR(55) DEFAULT NULL,"
sql &= "testo VARCHAR(255) DEFAULT NULL,"
sql &= "PRIMARY KEY(idlesenzione)"
sql &= ")ENGINE = InnoDB AUTO_INCREMENT = 0 DEFAULT CHARSET = latin1;"
hres = $hConn.EXEC(sql)
$hConn.Commit
Message.info("tabella lesenzione creata")
Endif
Endif
quando vado a leggere il campo "idlesenzione" mi ritorna un valore booleano, questo succede anche su altre tabelle ma non su tutte quelle che sono presenti nel database.
nel database ho creato tutte le tabelle (circa 60) da codice come quello riportato sopra ma ora solo quelle meno popolate e che presentano da 1 a 4/5 record m ritornano i dati booleani, le tabelle con centinaia e migliaia di record funzionano.
Io MySql non lo conosco e probabilmente ti dico una scemenza, ma potresti provare a togliere “ = True” dal primo If e cambiare la domanda inserendo un integer così:
i = Message.Question("Creo la Tabella lesenzione?", "Si", "No")
If i = 1 … oppure Select Case i
Hai visto mai che gli dia fastidio Il True o If?
Altra cosa hai controllato i componenti? Non è che magari qualcuno è deprecato?
:ciao:
ciao gianluigi
quello è il codice con cui ho creato l database, l'ho postato solo per far capire che tipo di database uso.
il codice per leggere la tabella è il seguente:
Public Sub getData()
Dim sql As String
sql = "select * from lesenzione order by idlesenzione"
MyRS = MODMain.MyConn.Exec(sql)
If MyRS.Available Then mystringa = Str(MyRS!idlesenzione)
End