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

 

 


Tema destacado:


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


Desconectado Desconectado

Mensajes: 551



Ver Perfil WWW
Conexion BBDD ADO
« en: 9 Abril 2010, 14:48 pm »

Gente tengo una duda, porque no se porque este codigo me salta un error... alguien podría ayudarme? es que llevo toda la vida realizando consultas y modificando sobre ellas y ahora  no puedo hacerlo porque me dice lo siguiente:

-2147467259(80004005)
Error en la actualizacion basada en consultas: no se encontro la fila para actualizar.

codigo:
Código
  1. Dim con As New ADODB.Connection
  2. Dim rs As New ADODB.Recordset
  3.  
  4. Private Sub Command1_Click()
  5.  
  6.    rs.Open "SELECT * from usuarios where USR_Tipo like 'v'", con, adOpenDynamic, adLockPessimistic
  7.    rs.MoveFirst
  8.    rs.Update
  9.    If Not rs.EOF Then
  10.    While Not rs.EOF
  11.         rs("USR_password").Value = "uiid2daa"
  12.         rs.Update
  13.         rs.MoveNext
  14.    Wend
  15.    End If
  16.  
  17.    rs.Close
  18.    con.Close
  19. End Sub
  20.  
  21. Private Sub Form_Load()
  22. connstr = "Driver={MySQL ODBC 3.51 Driver};" & _
  23.          "Server=192.168.1.1;" & _
  24.          "Port=3306;" & _
  25.          "Database=test;" & _
  26.          "User=root;" & _
  27.          "Password=pass;"
  28.          With con
  29.            .ConnectionString = connstr
  30.            .Open
  31.          End With
  32. End Sub

Me estoy volviendo loco, alguien podría ayudarme? lo unico que quiero es modificar el campo USR_Password y no lo consigo. Un saludo!


En línea

K@NuT0
ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Conexion BBDD ADO
« Respuesta #1 en: 9 Abril 2010, 15:19 pm »

Código
  1. Dim con As New ADODB.Connection
  2. Dim rs As New ADODB.Recordset
  3.  
  4. Private Sub Command1_Click()
  5.  
  6.    rs.Open "UPDATE usuarios set USR_password='uiid2daa' where USR_Tipo = 'v'", con, adOpenDynamic, adLockPessimistic
  7. 'Alli actualizaras el campo password, donde el USR_Tipo sea igual a 'v'
  8.    rs.Close
  9.    con.Close
  10. End Sub
  11.  
  12. Private Sub Form_Load()
  13. connstr = "Driver={MySQL ODBC 3.51 Driver};" & _
  14.          "Server=192.168.1.1;" & _
  15.          "Port=3306;" & _
  16.          "Database=test;" & _
  17.          "User=root;" & _
  18.          "Password=pass;"
  19.          With con
  20.            .ConnectionString = connstr
  21.            .Open
  22.          End With
  23. End Sub


En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Conexion BBDD ADO
« Respuesta #2 en: 10 Abril 2010, 08:32 am »


Te recomiendo realises la conexion ado y crees tus funciones aparte dejando el form limpio de este tipo de cosas... asi lo hago yo en .NET ADO.NET aun que este ado la funcion deberia seria devolverte el RecordSet, despues trabajas sobre este con la conexion cerrada y en otra funcion guardas el RecordSet pasandolo en dicha funcion!¡.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Conexion BBDD ADO
« Respuesta #3 en: 10 Abril 2010, 16:46 pm »

aparte el codigo le faltan chequeos y esta mal planteado...y por un tema que no voy a explicar aca te recomiendo que no uses As New...
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Conexion BBDD ADO
« Respuesta #4 en: 10 Abril 2010, 18:28 pm »

Yá me entro la curiosidad, porque no se debe usar As New?. Lo uso mucho en VB.Net.
« Última modificación: 10 Abril 2010, 20:31 pm por seba123neo » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Conexion BBDD ADO
« Respuesta #5 en: 10 Abril 2010, 20:32 pm »

es que en .NET es otra cosa, si se puede usar de esa forma...pero en VB 6 no esta recomendado hacerlo, por un tema de performance, claro que uno ni se da cuenta...pero bueno si en todos lados dicen que no debe hacerse esto, algo de razon tendran ¿no?, por mas que uno no se de cuenta.aca una cita de una web:

Citar
Don't Dim .. As New

Dim obj As MyClass
Set obj = New MyClass

Why write 2 lines when you can just say Dim obj As New MyClass?

Never Dim anything As New if you're concerned about speed. VB6 will treat such a variable as an auto-instantiated variable. Every time you use it, VB will check if it should be instantiated. This will cost you some extra CPU cycles.

cita de el guille:

Citar
Buenas normas de conducta con los objetos

La forma que acabamos de ver de crear un objeto es la más recomendable. El porqué es que así sólo reservamos espacio real cuando vamos a usar el objeto. Me explico: Veamos otras formas de declarar/asignar variables de objetos:

 

Dim miNombre As Object
Set miNombre = New cNombre

 

Esta sería la forma de crear un objeto del que no sabemos que clase será. En nuestro caso, es un desperdicio de código (interno del VB) y recursos (no demasiados) que no es necesario. Cuando se usa una variable declarada As Object, el Visual Basic no sabe, hasta que se está ejecutando, de que clase será y reserva unas líneas (ocultas) de código para poder hacer su trabajo cuando esté ejecutándose el programa.

 

Dim miNombre As New cNombre

 

De esta forma, al mismo tiempo que declaramos la clase, le indicamos al VB que en cuanto ejecute el módulo en el que se encuentra la declaración, cree el objeto. Aunque ese objeto nunca se use, se creará en memoria y ahí estará hasta que se destruya... ¿Desperdicio de recursos? Más bien sí.

Pero tanto esta última forma como la primera, es la más rápida y menos consumidora de código interno y recursos o tiempo que el Visual necesita para crear objetos.

Esto es por la sencilla razón que ya le estamos indicando cómo va a ser ese objeto y por tanto él sabe cómo es y cuanto necesitará para albergarlo... por supuesto, esto sólo se puede hacer con objetos que actualmente hay en las referencias o en nuestro proyecto.

 

¿Qué método usar para declarar variables de objetos?

Si sabemos el tipo de antemano, usaremos el primer método:

 

Dim miNombre As cNombre

 

Cuando queramos usarlo, sólo debemos asignarlo mediante SET y ya estará disponible.

Habrá ocasiones, la mayoría, en que se necesite usar el NEW junto con la declaración, un caso es para usar colecciones, ya que no se comporta de igual forma. La razón de este "extraño" comportamiento, al menos en forma práctica, la teórica te la dejo a ti, para que profundices con los manuales del Visual Basic, es que al usarlo sin NEW sólo tenemos una copia "fija" de esa variable. Por otro lado, con NEW obtendremos una nueva copia después de destruir la copia anterior. Esto lo verás prácticamente en el código de ejemplo para probar todo esto.

creo que queda claro...

PD: Alex@ShellRoot te edite el post sin querer, no modifique nada.

saludos.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Conexion BBDD ADO
« Respuesta #6 en: 11 Abril 2010, 08:46 am »

La cosa por lo que entiendo es que el .NET el FrameWork que ejecuta el Script... bueno el "Programa" tiene un modulo que administra la memoria, por decirlo en Español y en VB6 no esta esto pero bueno!¡.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
W0lFy


Desconectado Desconectado

Mensajes: 551



Ver Perfil WWW
Re: Conexion BBDD ADO
« Respuesta #7 en: 12 Abril 2010, 07:44 am »


Te recomiendo realises la conexion ado y crees tus funciones aparte dejando el form limpio de este tipo de cosas... asi lo hago yo en .NET ADO.NET aun que este ado la funcion deberia seria devolverte el RecordSet, despues trabajas sobre este con la conexion cerrada y en otra funcion guardas el RecordSet pasandolo en dicha funcion!¡.


Buenas, a que te refieres con esto? yo me puedo crear una funcion que realice todo esto, pero aque te refieres con la conexion ADO?
Citar
rs.Open "UPDATE usuarios set USR_password='uiid2daa' where USR_Tipo = 'v'", con, adOpenDynamic, adLockPessimistic

Gracias ssccaann43 no sabia que se podia utilizar SQL para actualizar los campos!
« Última modificación: 12 Abril 2010, 09:04 am por ¤¤¤K@NuTöM@N¤¤¤ » En línea

K@NuT0
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Script de conexión a BBDD?
Bases de Datos
martinillou 0 2,050 Último mensaje 15 Noviembre 2013, 11:48 am
por martinillou
Consulta SQL a BBDD de estadísticas de Fútbol o Baloncesto
Dudas Generales
chocola 0 1,529 Último mensaje 1 Mayo 2014, 14:36 pm
por chocola
Configurar Hibernate con BBDD DerbyEmbedded
Java
CaTZ 0 1,312 Último mensaje 29 Septiembre 2014, 12:25 pm
por CaTZ
conexion a bbdd .DBF
Bases de Datos
cahipe 0 2,469 Último mensaje 30 Agosto 2017, 14:10 pm
por cahipe
Duda conexión a BBDD
Redes
k4c1k3 0 1,573 Último mensaje 1 Octubre 2018, 22:28 pm
por k4c1k3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines