Problema al abrir un recordset ADO
Antetodo gracias por leer esto. A ver, mi problema es que tengo el Visual Basic 6.0 y he creado una aplicación que maneja recordsets ADO, los cuales me dan bastantes problemas que poco a poco he ido resolviendo menos uno. Resulta que al iniciar la aplicación, creo una conexión a una base de datos remota del tipo IBM/DB2 soble linux, hasta aquí todo correcto (la conexión va bien), después abro un recordset con el método OPEN sobre esa conexión y me lo abre (propiedad STATE a 1) pero no lee nada (propiedad RECORDCOUNT a 0). Si abro el recordset utilizando el método execute de la cnoexión y devolviendo la select a ese recordset todavía va peor (propiedad RECORDCOUNT A -1). Estoy desesperado, he probado todos los tipos de bloqueo,cursores, etc... y el que mejor funciona es adOpenKeySet con bloqueo optimista. Me ocurre lo mismo con ADO 2.5 y 2.7. La tabla que intento abrir solo tiene un registro y esta es la instrucción que estoy utilizando:
ModuloBD.rcEntorno.Open consulta, ModuloBD.cnaux, adOpenKeyset, adLockBatchOptimistic, adCmdText
Y esta es la puse probando con el execute, pero que ya os digo que va peor:
Set ModuloBD.rcEntorno = ModuloBD.cnaux.Execute("SELECT * FROM ALMACEN.TBLENTORNO", , adCmdText)
Si alguien me puede ayudar, lo agradecería eternamente. Gracias anticipadas.
ModuloBD.rcEntorno.Open consulta, ModuloBD.cnaux, adOpenKeyset, adLockBatchOptimistic, adCmdText
Y esta es la puse probando con el execute, pero que ya os digo que va peor:
Set ModuloBD.rcEntorno = ModuloBD.cnaux.Execute("SELECT * FROM ALMACEN.TBLENTORNO", , adCmdText)
Si alguien me puede ayudar, lo agradecería eternamente. Gracias anticipadas.
cuando usas mas de una tabla en una consulta SQl tambien debes, al seleccionar los campos a mostrar, especificar a que tabla pertence EJ SELECT Tabla1.Campo1,Tabla1.Campo2,Tabla2.Campo1 FROM Tabla1,Tabla2 WHERE Tabla1.Campo1 = 'DatoBusca'
Cuando haces consultas no es necesario bloquerar, si es necesario cuando modificas
antes de hacer la consulta, coloca la propiedad cursorlocation a aduseclient, eso me funciono a mi. Suerte
