Hola, estoy comenzando esto de gambas y me parece excelente. Actualmente estoy probando dos escenarios de conexion, uno en MySQL (que funciona a la prefeccion), y otro en MS-SQL, el cual presenta problemas.
Configure unixODBC usando FreeTDS 0.91, en mi Ubuntu 12.04 Unity y gambas 3.3.4 con gb.gui.
El problema se presenta al realizar una consulta de cualquier indole sobre una BD MS-SQL 2000 remota. El "result" devuelve un count =-1, y simplemente esta vacio. He intentado consultas simples y el resultado siempre es el mismo. Mas extrano aun es que desde consola, usando isql, la misma consulta si muestra los resultados.
Ahora algo del codigo:
'gambas module file
Public cnxAMP As New Connection
'gambas FMain.Class
Public Sub btnConectar_Click()
With modConexion.cnxAMP
.Type = "odbc"
.Host = "amp"
.Name = "amp"
.Login = txtUsuario.Text
.Password = txtPassword.Text
End With
Try modConexion.cnxAMP.Open
If modConexion.cnxAMP.Opened Then
frmPrincipal.Show
FMain.Close
Else
Message.Warning("No se pudo establecer la conexion")
txtUsuario.Text = ""
txtPassword.Text = ""
txtUsuario.SetFocus
Endif
End
'gambas frmPrincipal.Class
' gambas class file
Public Sub Form_Open()
If modConexion.cnxAMP.Opened Then
Message.Info("Conectado")
Endif
End
Public Sub btnConsulta_Click()
Dim sqlConsulta As String
Dim rstConsulta As Result
sqlConsulta = "SELECT nombre FROM pacientes WHERE historia LIKE '82037269%'"
rstConsulta = modConexion.cnxAMP.Exec(sqlConsulta)
If rstConsulta.Available Then
lblFilas.Text = lblFilas.Text & " " & rstConsulta.Count
Endif
End
Public cnxAMP As New Connection
'gambas FMain.Class
Public Sub btnConectar_Click()
With modConexion.cnxAMP
.Type = "odbc"
.Host = "amp"
.Name = "amp"
.Login = txtUsuario.Text
.Password = txtPassword.Text
End With
Try modConexion.cnxAMP.Open
If modConexion.cnxAMP.Opened Then
frmPrincipal.Show
FMain.Close
Else
Message.Warning("No se pudo establecer la conexion")
txtUsuario.Text = ""
txtPassword.Text = ""
txtUsuario.SetFocus
Endif
End
'gambas frmPrincipal.Class
' gambas class file
Public Sub Form_Open()
If modConexion.cnxAMP.Opened Then
Message.Info("Conectado")
Endif
End
Public Sub btnConsulta_Click()
Dim sqlConsulta As String
Dim rstConsulta As Result
sqlConsulta = "SELECT nombre FROM pacientes WHERE historia LIKE '82037269%'"
rstConsulta = modConexion.cnxAMP.Exec(sqlConsulta)
If rstConsulta.Available Then
lblFilas.Text = lblFilas.Text & " " & rstConsulta.Count
Endif
End
Asi de sencillo, simplemente el rstConsulta.Count siempre devuelve -1, sin importar que consulta hago. Peor aun si lo enlazo a un Gridview, en el mismo se cargan los nombres de los campos (nombre de las columnas). Muy extrano.
Si alguien me da una pista de que puedo probar para que la consulta funcione correctamente?
OJO: Ya enlace LibreOffice BASE con MS-SQL y obtengo resultados de las consultas, por esa razon intuyo que mi configuracion ODBC esta bien.