Ayer intenté hacer un pequeño programa donde pensaba utilizar una base de datos sqlite y mis famosos controles de base de datos...
Nuevo Proyecto-> Proyecto de base de datos, copia y pegar el código de los controles, un pequeño formulario... y cuál sería mi sorpresa que de repente no funcionaba nada de esos controles que llevan funcionando años.
Pequeña investigación y descubierto el problema: En los drivers de antes, la propiedad Fields de un Result actuaba como un array de objetos .ResultFields y ahora actúa como una colección que tiene como clave el nombre del campo y como valor el objeto .resulfield...
Así, este código que extrae los nombres de campo y los tipos de datos de un result:
Código:
For f = 0 To Value.Fields.Count - 1
$fieldnames.Add(Value.Fields[f].Name)
$fieldtypes.Add(value.Fields[f].type)
Next
Deja de funcionar si usamos gb.db2 en lugar del obsoleto gb.db.
Para que funcione debe ser sustituído por algo así:
Código:
For Each skey In Value.Fields
$Fieldnames.Add(skey.Name)
$Fieldtypes.Add(skey.Type)
Next
No sé si eso es una mejora o sólo otra manera de pelar el mismo gato, pero sí sé que para revivir todos los programas que tengo (perdón, que en mi antiguo trabajo tienen) van a sudar tinta como se les ocurra actualizar al 3.20...
Malditas actualizaciones...
Es la primera vez que subo código en el foro nuevo, espero que salga bien.
Iba a poner de título "¡Pos yo me cago en las actualizaciones!"... pero es algo excesivo, creo.
Saludos