Non ritengo MySQL un dbms secondario, anche perchè di passi in avanti ne ha fatti parecchi, ed è per la sua velocità che viene impiegato, ad esempio, nei CMS. Il motore è abbastanza semplice ma ci sono grosse differenze rispetto ad un PostgreSQL o un Oracle (con cui lavoro costantemente...).
Dato che questi due li uso in ambito lavorativo, ne conosco abbastanza i segreti (Oracle di più...), e ritengo che siano adatti più in sistemi ad alto livello, cosa che MySQL forse raggiungerà con il tempo.
Ma a parte le disquisizioni...
L'errore in fase di lettura l'ha già segnalato darth, e comunque l'ho già corretto.
Riguardo alla versione Gambas, io uso attualmente la 2.8.2 (ultima stabile), e per cui sarebbe meglio tu usassi questa, altrimenti potremmo avere delle casistiche di errore anomale, dato che alcune cose sono cambiate.
Riguardo ai nuovi tipi MySQL, nel codice sorgente del driver (file pgDriverMySQL50.class, unica versione per adesso...), all'inizio dello stesso, nel metodo "InitDataType()" sono dichiarti tutti i tipi previsti per quella versione del driver. Sono presenti un certo numero di chiamate, con relative creazioni di oggetti pgTypeItem, che definiscono ogni singolo tipo, compresa una propria descrizione. Nella classe "pgTypeItem.class", metodo costruttore "_new()", vengono definiti i parametri di costruzione, che in pratica sono:
' @parameter : String : Name (default="")
' @parameter : String : Type (default="")
' @parameter : String : Parameter (default="")
' @parameter : String : Storage (default="")
' @parameter : String : Min value (default="")
' @parameter : String : Max value (default="")
' @parameter : String : Resolution (default="")
' @parameter : String : Description (default="")
Sono tutti parametri descrittivi, sui quali non viene effettuata alcuna operazione, ma per esempio: il campo nome viene caricato nella combo di edit dei campi tabella, la descrizione viene usata come tooltip (se presente).
Se vuoi, puoi implementare questa parte di codice con i nuovi tipi, visto che li conosci bene, altrimenti sono costretto comunque a leggermi la documentazione relativa. Poi mi passi le variazioni, le controllo un attimo, e le inserisco nella prossima release.
Riguardo alla lettura del db, infatti mi baso sulla tabella "information_schema", come puoi vedere nel codice del driver, ma ho notato che alcune cose non ci sono, o per lo meno forse non sono in quella tabella, oppure devono essere calcolate in qualche modo, non sò bene ora...
Ora provo pure il file di progetto che mi hai inviato, ti faccio sapere se c'è qualcosa che non và.
Per finire: ad ogni modo, dall'ultimo rilascio, ho fatto proprio alcune modifiche al driver MySQL. Ora vedo di fare il pacchetto e di pubblicarlo appena possibile.
Se hai domande da fare, circa la logica del programma, o su cose inerenti al codice, non esitare; inoltre, se hai qualche idea sui campi da mostrare nelle form di edit, idem con patate!
Ciao e grazie!