Trabajar con BD en Foxpro 2.5 a V.Basic 6.0

ernestoantonio
10 de Noviembre del 2005
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

kheops
10 de Noviembre del 2005
@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

wilman
10 de Noviembre del 2005
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

kheops
10 de Noviembre del 2005
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


none
10 de Noviembre del 2005
ernestoantonio es un desagradecido. Almenos di gracias!

je,je,je