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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


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

Desconectado Desconectado

Mensajes: 62


llBlood_Brotherll


Ver Perfil
Ayuda Con resgitro
« en: 15 Octubre 2009, 16:30 pm »

Estoy Haciendo un Launcher Donde  del Mismo Se Pueda Hacer un registro de de los  usuarios pero  cuando le doy a registrar este es mi codigo, Para base de datos estoy usando es Mysql

Código:
Public BD As ADODB.Connection
Public RecSQL As ADODB.Recordset
Private Sub connect()
Dim IPMysql  As String
Dim User As String
Dim Password As String

Set BD = New ADODB.Connection
BD.ConnectionString = "Driver={Mysql ODBC 3.51 Driver};" & _
IPMysql = "127.0.0.1" 'IP Del Mysql '
User = "root" ' Usuario de la Base de Datos'
Password = "root" 'Password de la Base de Datos'
BD.Open

End Sub


Private Sub ButtonTransparent1_Click(Index As Integer)

Set RecSQL = New ADODB.Recordset

RecSQL.Open "INSERT INTO Registro (Account_id, Password, Nombre,Email, Birth_Date) VALUES (" & Val(Text1) & ",'" & Text2 & ", " & Text3 & ", " & Text4 & ", " & Text5 & ", " & Text6 & ", " & Text7 & ", " & Text8 & "')", BD, adOpenStatic, adLockOptimistic ----> Esta Linea Sale  Resaltada

Set RecSQL = Nothing

Form2.Hide
End Sub


En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayuda Con resgitro
« Respuesta #1 en: 16 Octubre 2009, 02:00 am »

eso esta mal, para insertar un registro no debes abrir un recordset, debes ejecutar un comando...


En línea

blood_brother

Desconectado Desconectado

Mensajes: 62


llBlood_Brotherll


Ver Perfil
Re: Ayuda Con resgitro
« Respuesta #2 en: 16 Octubre 2009, 14:29 pm »

me podrias  explicar por favor  como lo hago ???
En línea

Mr. Crowley


Desconectado Desconectado

Mensajes: 343


Costa Rica


Ver Perfil WWW
Re: Ayuda Con resgitro
« Respuesta #3 en: 16 Octubre 2009, 14:58 pm »

Talvez esto le sirva:

Código:
Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
        '//abrir la conexion a mysql (conConexion)
    With rs
        '//establecer la conexion
        .ActiveConnection = conConexion
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open "INSERT INTO tabla(campos) VALUES(valores)"
        If .State Then .Close
        '//cerrar la conexion
        If conConexion.State Then conConexion.Close
    End With
    Set rs = Nothing


Edito:
Código:
        '//abrir la conexion a mysql (conConexion)
Ahi tiene que hacer la conexion a la base de datos.
« Última modificación: 16 Octubre 2009, 15:07 pm por Mr. Crowley » En línea

Mi blog personal: www.calirojas.com
blood_brother

Desconectado Desconectado

Mensajes: 62


llBlood_Brotherll


Ver Perfil
Re: Ayuda Con resgitro
« Respuesta #4 en: 16 Octubre 2009, 15:44 pm »

Este es mi Codigo Fuente  de mi Form  de Registro

Código:
Public BD As ADODB.Connection
Public RecSQL As ADODB.Recordset
Private Sub connect()
Dim IPMysql  As String
Dim SelectBD As String
Dim User As String
Dim Password As String

Set BD = New ADODB.Connection
BD.ConnectionString = "Driver={Mysql ODBC 3.51 Driver};" & _
IPMysql = "127.0.0.1" 'IP Del Mysql '
SelectBD = "ae_server_ls" 'Selecion de la  Base de Datos'
User = "root" ' Usuario de la Base de Datos'
Password = "synopsis" 'Password de la Base de Datos'
BD.Open

End Sub
Private Sub ButtonTransparent1_Click(Index As Integer)
Dim rs As ADODB.Recordset
   Set rs = New ADODB.Recordset
        '//abrir la conexion a mysql (conConexion)
        BD.ConnectionString = "Driver={Mysql ODBC 3.51 Driver};" & _
        IPMysql = "127.0.0.1" 'IP Del Mysql '
        SelectBD = "ae_server_ls" 'Selecion de la  Base de Datos'
        User = "root" ' Usuario de la Base de Datos'
        Password = "synopsis" 'Password de la Base de Datos'
        BD.Open
    With rs
        '//establecer la conexion
        .ActiveConnection = conConexion
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open "INSERT INTO Registro(campos) VALUES(id_personal,acc_id,name,email,birth)"
        If .State Then .Close
        '//cerrar la conexion
        If conConexion.State Then conConexion.Close
    End With
    Set rs = Nothing
End Sub

Private Sub ButtonTransparent2_Click()
On Error GoTo Ver
Set RecBD = New ADODB.Recordset
RecBD.Open "SELECT * from account_data,name,id, BD, adOpenStatic, adLockOptimistic"

While Not RecBD.EOF
  MsgBox "Ya Existe Ese  ID"
Wend
End Sub

Private Sub ButtonTransparent3_Click()
Form2.Hide
End Sub
En línea

Mr. Crowley


Desconectado Desconectado

Mensajes: 343


Costa Rica


Ver Perfil WWW
Re: Ayuda Con resgitro
« Respuesta #5 en: 16 Octubre 2009, 16:07 pm »

Bueno... creo que se esta complicando la vida haciendo un procedimiento de conexion en cada form... le recomiendo que coloque ese procedimiento de conexion en un modulo... algo asi:

modMySQL
Código:
Option Explicit
  Public conConexion As ADODB.Connection
  Public strCadenaConexion As String

'//CONECTAR AL SERVIDOR DE DATOS
Public Sub psConectar()
  On Error GoTo Error_Handler:
    Set conConexion = New ADODB.Connection
        conConexion.ConnectionString = modMySQL.strCadenaConexion
        conConexion.Open
  Exit Sub
Error_Handler:
    Set conConexion = Nothing
    MsgBox Err.Description & " (" & Err.Number & ").", vbCritical
End Sub

La variable publica strCadenaConexion la puede cargar de un archivo de texto (o desde el registro) cuando abre el primer form de la aplicacion... asi no va a tener que volver a compilar el proyecto cada vez que se cambie de servidor, usuario, etc.

Bien.. ahora.. con este ejemplo se conecta a la base de datos e inserta... (recuerde que tiene que definir la cadena de conexion en la variable publica strCadenaConexion):

Código:
Private Sub psGuardar_Usuario()
  Dim rs As ADODB.Recordset
    On Error GoTo Error_Handler
        Set rs = New ADODB.Recordset
                    Call modMySQL.psConectar
        With rs
            .ActiveConnection = modMySQL.conConexion
            .CursorLocation = adUseClient
            .CursorType = adOpenDynamic
            .LockType = adLockOptimistic
           
                .Open "INSERT INTO tabla(campos) VALUES(valores)"
            If .State Then .Close
            If modMySQL.conConexion.State Then modMySQL.conConexion.Close
        End With
        Set rs = Nothing
    Exit Sub
Error_Handler:
    MsgBox Err.Description & " (" & Err.Number & ").", vbCritical
End Sub

La cadena de conexion puede ser algo asi:

Código:
            modMySQL.strCadenaConexion = "driver={MySQL ODBC 3.51 Driver};server=" & Trim(txtServidor) & ";" _
            & "uid=usuario_mysql;pwd=password_mysql;database=base_de_datos;connection="

Donde txtServidor es un TextBox que se coloca en el form de Login... (esto es para lo que le comente anteriormente), que no tenga que estar compilando el proyecto cada vez que cambian el nombre del server, etc.
En línea

Mi blog personal: www.calirojas.com
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayuda Con resgitro
« Respuesta #6 en: 17 Octubre 2009, 01:43 am »


Código:
Private Sub psGuardar_Usuario()
  Dim rs As ADODB.Recordset
    On Error GoTo Error_Handler
        Set rs = New ADODB.Recordset
                    Call modMySQL.psConectar
        With rs
            .ActiveConnection = modMySQL.conConexion
            .CursorLocation = adUseClient
            .CursorType = adOpenDynamic
            .LockType = adLockOptimistic
           
                .Open "INSERT INTO tabla(campos) VALUES(valores)"
            If .State Then .Close
            If modMySQL.conConexion.State Then modMySQL.conConexion.Close
        End With
        Set rs = Nothing
    Exit Sub
Error_Handler:
    MsgBox Err.Description & " (" & Err.Number & ").", vbCritical
End Sub


sigue estando mal, con un recordset no se insertan registros, es con un objeto command.

saludos.
En línea

blood_brother

Desconectado Desconectado

Mensajes: 62


llBlood_Brotherll


Ver Perfil
Re: Ayuda Con resgitro
« Respuesta #7 en: 25 Octubre 2009, 18:06 pm »

me puedes  decir como lo hago por necesito hacer  eso por favor
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayuda Con resgitro
« Respuesta #8 en: 25 Octubre 2009, 18:14 pm »

haber algo asi:

en algun modulo declaras publico el comando.

Código
  1. Public mComando As ADODB.Command

y lo seteas donde empieze tu programa, en el Sub_Main o el el Load del formulario de inicio que tengas.

Código
  1. Set mComando = New ADODB.Command

y cuando quieras usarlo le seteas la conexion que va a usar y la cadena SQL, y lo ejecutas:

Código
  1.    mComando.ActiveConnection = TuConexion
  2.    mComando.CommandText = "INSERT INTO Clientes (id,nombre) VALUES (1,'seba')"
  3.    mComando.Execute

esto que te digo esta en cualer lado que hable de ADO, busca y vas a encontrar, aca tenes un monton de ejemplos:

ADO - Microsoft Activex Data Objects

saludos.
En línea

blood_brother

Desconectado Desconectado

Mensajes: 62


llBlood_Brotherll


Ver Perfil
Re: Ayuda Con resgitro
« Respuesta #9 en: 25 Octubre 2009, 18:51 pm »

ole  gracias tio  me  ayuda bastante lo que me pasaste xD
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

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