Trabajar con BD en Foxpro 2.5 a V.Basic 6.0
como enlazo una base de datos de una apliacion en Fox pro 2.5 a una aplicacion en V.Basic para que trabaje a la vez y pueda hacer consultas y modificaciones, agregar registros, etc ¿tengo que crear un BD en V.Basic o en Access con la estructura de la BD en foxpro ? si alguien me manda informacion detallada y donde encuentro este tipo de informacion.. estare muy agradecido
@ernesto,
Antes que nada, VB no permite crear bases de datos. Tampoco necesitas crear o replicar tu base de datos de VFPro a Access.
Desde visual basic (asumo que la versión 6), puedes acceder a cualquier base de datos haciendo uso de los objetos de acceso a datos como DAO, OLEDB, ODBC y ADO.
Para usar ADO o cualquiera de los objetos de acceso a datos antes mencionados, necesitas crear:
+ un objeto connection.
+ un objeto command.
+ un objeto recordset.
Exemplo:
'Posiblemente requieras agregar una referencia a
los objetos ADO (version 2.6, 2.7 o 2.8), desde el menú Project).
Private Sub Form_Load()
'Autor: ISC. César F. Qüeb Montejo
'Probablemente requieras descargar el provider para FoxPro:
'Bájalo de aquÃ:
'http://www.microsoft.com/downloads/details.aspx?FamilyID=0f43eb58-7a94-4ae1-a59e-965869cb3bc9&DisplayLang=en#filelist
'------------------------------------
Dim miConnection As ADODB.Connection 'Para conectarnos a la bd.
Dim miRecordSet As ADODB.Recordset 'Para almacenar los registros (como un cursor)
Dim miComando As ADODB.Command 'Para ejecutar un comando SQL
'Abrimos la conexion a tu base de datos fox.
'Obviamente, tienes que cambiar tu ruta de acceso y el
'nombre de la base de datos
Dim strConn As String 'Para la cadena de conexión
'El provider cambia dependiendo de la base de datos
'en este caso, quieres conectarte a una bd de Visual FoxPro
strConn = "Provider=VFPOLEDB.1;" & _
"Data Source=C:VisualFoxGafetesGBDSgafeconf.dbc;" & _
"Password='';Collating Sequence=MACHINE"
Set miConnection = New ADODB.Connection
With miConnection
.ConnectionString = strConn
.CursorLocation = adUseClient
.Open
End With
'Abrimos una consulta SQL mediante el objeto Command.
Set miComando = New ADODB.Command
Set miRecordSet = New ADODB.Recordset
With miComando
.ActiveConnection = miConnection
.CommandType = adCmdText
'Observa que aquà puedes incluir CUALQUIER comando SQL
'INSERT para agregar registros, DELETE para borrar, UPDATE para actualizar, etc.
.CommandText = "SELECT * from papel"
Set miRecordSet = .Execute 'Ejecutamos el query y retornamos al mismo tiempo el recordset.
End With
'mostramos los datos en el datagrid
Set DataGrid1.DataSource = miRecordSet
txtCampo1.Text = miRecordSet("idpapel").Value
'Ya con esto, puedes colocar botones en tu formulario
'y ejecutar comandos SQL (mediante objetos ADODB.Command)
'o navegar por los registros por medio de miRecordset.MoveFirst(),
'miRecordset.MoveNext(), miRecordset.MovePrevious() o miRecordset.MoveLast()
'Alejandra (my daughter)... I love You a lot!
End Sub
Antes que nada, VB no permite crear bases de datos. Tampoco necesitas crear o replicar tu base de datos de VFPro a Access.
Desde visual basic (asumo que la versión 6), puedes acceder a cualquier base de datos haciendo uso de los objetos de acceso a datos como DAO, OLEDB, ODBC y ADO.
Para usar ADO o cualquiera de los objetos de acceso a datos antes mencionados, necesitas crear:
+ un objeto connection.
+ un objeto command.
+ un objeto recordset.
Exemplo:
'Posiblemente requieras agregar una referencia a
los objetos ADO (version 2.6, 2.7 o 2.8), desde el menú Project).
Private Sub Form_Load()
'Autor: ISC. César F. Qüeb Montejo
'Probablemente requieras descargar el provider para FoxPro:
'Bájalo de aquÃ:
'http://www.microsoft.com/downloads/details.aspx?FamilyID=0f43eb58-7a94-4ae1-a59e-965869cb3bc9&DisplayLang=en#filelist
'------------------------------------
Dim miConnection As ADODB.Connection 'Para conectarnos a la bd.
Dim miRecordSet As ADODB.Recordset 'Para almacenar los registros (como un cursor)
Dim miComando As ADODB.Command 'Para ejecutar un comando SQL
'Abrimos la conexion a tu base de datos fox.
'Obviamente, tienes que cambiar tu ruta de acceso y el
'nombre de la base de datos
Dim strConn As String 'Para la cadena de conexión
'El provider cambia dependiendo de la base de datos
'en este caso, quieres conectarte a una bd de Visual FoxPro
strConn = "Provider=VFPOLEDB.1;" & _
"Data Source=C:VisualFoxGafetesGBDSgafeconf.dbc;" & _
"Password='';Collating Sequence=MACHINE"
Set miConnection = New ADODB.Connection
With miConnection
.ConnectionString = strConn
.CursorLocation = adUseClient
.Open
End With
'Abrimos una consulta SQL mediante el objeto Command.
Set miComando = New ADODB.Command
Set miRecordSet = New ADODB.Recordset
With miComando
.ActiveConnection = miConnection
.CommandType = adCmdText
'Observa que aquà puedes incluir CUALQUIER comando SQL
'INSERT para agregar registros, DELETE para borrar, UPDATE para actualizar, etc.
.CommandText = "SELECT * from papel"
Set miRecordSet = .Execute 'Ejecutamos el query y retornamos al mismo tiempo el recordset.
End With
'mostramos los datos en el datagrid
Set DataGrid1.DataSource = miRecordSet
txtCampo1.Text = miRecordSet("idpapel").Value
'Ya con esto, puedes colocar botones en tu formulario
'y ejecutar comandos SQL (mediante objetos ADODB.Command)
'o navegar por los registros por medio de miRecordset.MoveFirst(),
'miRecordset.MoveNext(), miRecordset.MovePrevious() o miRecordset.MoveLast()
'Alejandra (my daughter)... I love You a lot!
End Sub
yo estoy intentando ingresar informacion a un archivo.dbf desde visual basic y tus comentarios fueron de gran ayuda... baje e instale el archivo proveedor del enlace y todo bien hasta ahi... abri la coneccion con la tabla de foxpro y consulte la informacion que tenia, el problema se da cuando quiero insertar informacion o actualizar informacion me sale un error que dice El recordset actual no admite actualizaciones. Puede ser una limitacion del proveedor
Baja el Provider de FoxPro desde aquÃ:
http://www.microsoft.com/downloads/details.aspx?FamilyID=0f43eb58-7a94-4ae1-a59e-965869cb3bc9&DisplayLang=en#filelist
Puedes obtener más información en la ayuda de Visual Basic (acerca de ADO).
O checa esta página donde te muestran cómo usar clases de VFoxPro en VB (muy bueno)
http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art20.asp
Saludos
Best regards
http://www.microsoft.com/downloads/details.aspx?FamilyID=0f43eb58-7a94-4ae1-a59e-965869cb3bc9&DisplayLang=en#filelist
Puedes obtener más información en la ayuda de Visual Basic (acerca de ADO).
O checa esta página donde te muestran cómo usar clases de VFoxPro en VB (muy bueno)
http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art20.asp
Saludos
Best regards
