elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problema con ADO
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con ADO  (Leído 1,521 veces)
Alfai

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Problema con ADO
« en: 28 Febrero 2008, 03:52 am »

Tengo un problema con este código para hacer consultas a la tabla, es para una diccionario:
term es el campo donde se almacena el termino a buscar
def es la definicion de la palabra

Código:
Option Explicit
Dim cox_nlx As ADODB.Connection
Dim cox_rds As ADODB.Recordset
Dim query_cx As String

Private Sub Form_Load()
Set cox_nlx = New Connection
Set cox_rds = New Recordset
cox_nlx.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=dic-es.accdb;Persist Security Info=False"
cox_nlx.Open
End Sub

Private Sub Command1_Click()
query_cx = "SELECT def FROM terminos WHERE term= ' " & Text1 & " ' "
cox_rds.Open query_cx, cox_nlx
Text2 = cox_rds("def")
End Sub


El code me tira este error:
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.

Espero q alguein me pueda ayudar con esto
ciao


« Última modificación: 28 Febrero 2008, 03:54 am por Alfai » En línea

Chefito

Desconectado Desconectado

Mensajes: 122



Ver Perfil WWW
Re: Problema con ADO
« Respuesta #1 en: 28 Febrero 2008, 05:14 am »

Puede ser que al ejecutar tu consulta haya llegado al final de la bbdd y no haya encontrado nada? La consulta es como tu pones seguro....o sería así:
Código:
query_cx = "SELECT def FROM terminos WHERE term= '" & Text1 & "'"
porque dandole ese esos espacios al principio y al final de la palabra a buscar.....pues puede que no encuentre nada. No es lo mismo ' hola ' que 'hola'.
Mira también que ese recordset contenga algun registro y te aseguras de que no este vacio con
Código:
msgbox cox_rds.recordcount
. Eso te dara -1 si no puede determinar el numero de registros. Si tiene registros puedes intentar situarlos al principio de estos con
Código:
cox_rds.movefirst
.

Mira la definición del MSDN:
Se pueden crear tantos objetos Recordset como sea necesario.

Cuando se abre un Recordset, el registro actual está situado en el primer registro (si lo hay) y las propiedades BOF y EOF están establecidas a False. Si no hay registros, los valores de las propiedades BOF y EOF son True.

Pueden utilizarse los métodos MoveFirst, MoveLast, MoveNext y MovePrevious, así como el método Move, y las propiedades AbsolutePosition, AbsolutePage y Filter para volver a colocar el registro actual, asumiendo que el proveedor acepta la funcionalidad necesaria. Los objetos Recordset de tipo Forward-only sólo aceptan el método MoveNext. Cuando se utilizan métodos Move para visitar todos los registros (o para enumerar el Recordset), se puede utilizar las propiedades BOF y EOF para saber si ha llegado al principio o al final del Recordset.



« Última modificación: 28 Febrero 2008, 06:16 am por Chefito » En línea

Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines