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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


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

Desconectado Desconectado

Mensajes: 168



Ver Perfil
una mano con conexiones ADO
« en: 13 Febrero 2008, 12:54 pm »

estoy realizando un programa en basic pero necesito ayuda con las conexiones

necesito agregar , modificar y poder eliminar datos

para cada accion necesito un recordset verdad ? y por supuesto una conexion que supongo que sera la misma para todos en este caso AdoConexion

Código:
Dim AdoConexion As ADODB.Connection

para agregar los registros tendria que crear un sql

Código:
sql = "Insert Into TABLA (campo1,campo2,campo3)" _
    & "Values ('" & campo1.Text & "'," & campo2.Text & "'" & campo3.Text & "')"

lalaRecordset.Open sql, AdoConexion, adOpenDynamic, adLockOptimistic

estaria bien de esa forma el agregar ?

para modificar seria algo como

Código:
sql = "Update TABLA SET campo1 = campo1.txt,campo2 = campo2.txt WHERE condicion"

lalaRecordset.Open sql, AdoConexion, adOpenDynamic, adLockOptimistic

en este caso seria recordset.open ? o .execute ?

y para el eliminar
Código:
sql = "DELETE * FROM TABLA WHERE condicion"

lalaRecordset.Open sql, AdoConexion, adOpenDynamic, adLockOptimistic

aca open ? execute ? me da error al querer eliminar registros que estan relacionados , de que otra forma puede hacerse ?




En línea

[ Linux Registered User #348950 ]
Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: una mano con conexiones ADO
« Respuesta #1 en: 13 Febrero 2008, 13:17 pm »

para esto se suele utilizar un recordset una conexion y un command

abres conexiones

asignas conexion a comand y recordser
Código:
'para enviar consultas
cmd.commandtext= "sentencia
'para ejecutarlas
set recordset= cmd.execute
'luego para actualizar base de datos, usease todo lo que no sean selects
conexion.execute "sentencia"


ya ta


En línea

4D1cTo

Desconectado Desconectado

Mensajes: 168



Ver Perfil
Re: una mano con conexiones ADO
« Respuesta #2 en: 13 Febrero 2008, 13:20 pm »

no entendi mucho , no estoy muy familiarizado con estas conexiones como veras

lo unico que entendi es que solo se usa open para consultas de tipo select
para delete o update se usa execute
En línea

[ Linux Registered User #348950 ]
cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: una mano con conexiones ADO
« Respuesta #3 en: 13 Febrero 2008, 14:20 pm »

Citar
necesito agregar , modificar y poder eliminar datos

 Mira te muestro OTRA forma de hacerlo...

 Investiga un poco sobre el Adodc, este objeto lo podes enlazar con la base de datos, tabla, etc.

Para agregar un registro nuevo a la tabla, usas:
Código:
Adodc1.Recordset.AddNew

Para eliminar un registro, usas:
Código:
Adodc1.Recordset.Delete adAffectCurrent

Para actualizar los datos:
Código:
Private Sub CmdAceptar_Click()
    Adodc1.Recordset.Update 'Actualizas los cambios
    Adodc1.Refresh 'Refrescas el ado
End Sub

Y para cancelar cualquier acción:
Código:
Private Sub CmdCancelar_Click()
    Adodc1.Recordset.Cancel 'Cancelando
    Adodc1.Refresh 'Refrescando
End Sub

Podes tener los texbox's enlazados a cada campo de la tabla, a través del Ado.

Prueba a ver que tal, ¡S4lu2!

En línea

4D1cTo

Desconectado Desconectado

Mensajes: 168



Ver Perfil
Re: una mano con conexiones ADO
« Respuesta #4 en: 13 Febrero 2008, 15:48 pm »

no conocia esa forma , lo que pasa es que en el trabajo solo trabajmos con ADO

esto seria un complemento al ADO ? o seria otra forma de enlazar base de datos con vb ?
gracias
« Última modificación: 13 Febrero 2008, 15:50 pm por 4D1cTo » En línea

[ Linux Registered User #348950 ]
cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: una mano con conexiones ADO
« Respuesta #5 en: 13 Febrero 2008, 18:02 pm »

no conocia esa forma , lo que pasa es que en el trabajo solo trabajmos con ADO

esto seria un complemento al ADO ? o seria otra forma de enlazar base de datos con vb ?
gracias


??? :xD... la seguda, existen varias formas para acceder a una base de datos e interactuar con sus registos... el ejemplo anterior, es una de ella...

 Investiga un poco y te seguimos ayudando.

¡S4lu2!
En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: una mano con conexiones ADO
« Respuesta #6 en: 13 Febrero 2008, 19:24 pm »

no conocia esa forma , lo que pasa es que en el trabajo solo trabajmos con ADO

esto seria un complemento al ADO ? o seria otra forma de enlazar base de datos con vb ?
gracias

no te recomiendo trabajar con controles, lo que inicialmente parece una senda despejada se acaba convirtiendo en una trampa mortal
En línea

black_jjk

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: una mano con conexiones ADO
« Respuesta #7 en: 18 Febrero 2008, 18:25 pm »

Estoy de acuerdo con no usar controles enlazados, la verdad es que son un tanto limitantes y a la hora de establecer la conexión y los enlaces es un martirio, por otra parte si quieres mostrar diferente información en un mismo objeto como un FlexGrid...

Yo también te recomiendo que te pongas a estudiar pues esto de las bases de datos no es tan sencillo como praece y si trabajas de eso pues...
En una de esas borras información importante y ...

Pero ya esta bueno de sermones que esto se trata de ayurnos:

El código que sigue yo declaro en un módulo de manera pública para luego invocarlo desde donde me venga en gana, solo ten cuidado con el alcance de tus variables:

Código:
Public MC As ADODB.Connection
Public MR As Recordset
Public XSQL As String

Ahora abrimos la conexión:

Código:
Public Function AbreBase()
Set MC = Nothing
Set MC = New ADODB.Connection
MC.Provider = "Microsoft OLE DB Provider for ODBC Drivers"
MC.ConnectionString = "Persist Security Info=False;Data Source="& TU_CONEXION & ";User ID="& TU_USUARIO & ";password=" & TU_PASSWORD" & ";Data Provider=MSDASQL.1"
MC.Mode = adModeReadWrite
MC.Open
End Function

Ahora una función para Ejecutar tus consultas SQL:

Código:
Function Ejecuta(Consulta As String)
Set MR = New Recordset
MR.Open Consulta, MC
End Function

Vale?, si quieres también la puedes hacer pública o introducirla en el Form que te venga en gana y ejecutarla localmente.
Bueno y el XSQL ya sabes para que sirve XD;

Por último:

Código:
Private Sub Buscar_Click()
XSQL = "SELECT(*) FROM tuTabla WHERE tuCondición"
Ejecuta XSQL
'?> Y esto es por si tu consulta no produce resultados no te mande error!!
If MR.EOF And MR.BOF Then
  MsgBox("No se encontrarón resultados"
Else
  MR.MoveFirst
  While Not(MR.EOF)
  TU_OBJETO = MC.Fields(0).value
  TU_OBJETO = MC.Fields(1).value
  TU_OBJETO = MC.Fields(...).value
  TU_OBJETO = MC.Fields(N).value
End IF
End Sub

Vale espero que sigas el consejo que te hemos dado y estudies; lo del Fields(X) es para que no se te olvide que vas a identificar los campos con el número de subindice, por lo que si tu tabla tiene 50 campos y seleccionas todo usando "SELECT (*)" tendrás los Fields(0)-Fields(49), y si usas una consulta más especifica y especificas los campos que quieres seleccionar siempre serán N-1 para tus Fields a la hora de ejecutar tu código, espero que te sirva.
 ::)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
una mano
Java
flony 3 2,372 Último mensaje 31 Octubre 2012, 05:07 am
por flony
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines