Autor
|
Tema: Conexion BBDD ADO (Leído 5,430 veces)
|
W0lFy
|
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: Dim con As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub Command1_Click() rs.Open "SELECT * from usuarios where USR_Tipo like 'v'", con, adOpenDynamic, adLockPessimistic rs.MoveFirst rs.Update If Not rs.EOF Then While Not rs.EOF rs("USR_password").Value = "uiid2daa" rs.Update rs.MoveNext Wend End If rs.Close con.Close End Sub Private Sub Form_Load() connstr = "Driver={MySQL ODBC 3.51 Driver};" & _ "Server=192.168.1.1;" & _ "Port=3306;" & _ "Database=test;" & _ "User=root;" & _ "Password=pass;" With con .ConnectionString = connstr .Open End With 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
Mensajes: 792
¬¬
|
Dim con As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub Command1_Click() rs.Open "UPDATE usuarios set USR_password='uiid2daa' where USR_Tipo = 'v'", con, adOpenDynamic, adLockPessimistic 'Alli actualizaras el campo password, donde el USR_Tipo sea igual a 'v' rs.Close con.Close End Sub Private Sub Form_Load() connstr = "Driver={MySQL ODBC 3.51 Driver};" & _ "Server=192.168.1.1;" & _ "Port=3306;" & _ "Database=test;" & _ "User=root;" & _ "Password=pass;" With con .ConnectionString = connstr .Open End With 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
Mensajes: 3.158
I'Love...!¡.
|
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
|
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
|
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
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
seba123neo
|
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: 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: 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
Mensajes: 3.158
I'Love...!¡.
|
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
|
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? 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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Script de conexión a BBDD?
Bases de Datos
|
martinillou
|
0
|
2,200
|
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,695
|
1 Mayo 2014, 14:36 pm
por chocola
|
|
|
Configurar Hibernate con BBDD DerbyEmbedded
Java
|
CaTZ
|
0
|
1,421
|
29 Septiembre 2014, 12:25 pm
por CaTZ
|
|
|
conexion a bbdd .DBF
Bases de Datos
|
cahipe
|
0
|
2,789
|
30 Agosto 2017, 14:10 pm
por cahipe
|
|
|
Duda conexión a BBDD
Redes
|
k4c1k3
|
0
|
1,954
|
1 Octubre 2018, 22:28 pm
por k4c1k3
|
|