Hola. Tengo un programa hecho en VB.NET con base de datos MySQL, y quiero migrar la base de datos a PostgreSQL. Migre la base de datos, cambie la cadena de conexion para utilizar el driver psqlODBC. Para acceder a la base de datos solo utilizo codigo. Al lanzar una consulta a la base de datos no me encuentra los campos que le indico. Lo hago asi:

Private Sub frmPrincipalInicio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Public cn As New ADODB.Connection
Dim cadenaconnect As String = ""

cadenaconnect = "Driver={PostgreSQL UNICODE};Server=servidor;Port=5432;Database=basede datos;Uid=usuario;Pwd=contraseña;"

cn.Open(cadenaconnect)
Abrir_rsP(rsDatos, "Select codigo, empresa from empresas")

End sub

Public Sub Abrir_rsP(ByRef rs As ADODB.Recordset, ByRef origen As String)
rs = New ADODB.Recordset
rs.LockType = ADODB.LockTypeEnum.adLockOptimistic
rs.CursorLocation = ADODB.CursorLocationEnum.adUseClient
rs.CursorType = ADODB.CursorTypeEnum.adOpenDynamic
rs.Open(origen, cn)
End sub


El error que me da es que no encuentra el campo 'codigo'. Si en vez de especificar los campos le pongo el * si que me recupera todos los campos, pero esta solucion no me interesa.