Fox y Access

Desarrolle un programa hace rato en fox y esta hecho con tablas, ahora necesitan poner varias maquinas por lo que lo estoy emigrando a Access, Yo ya elimine las tablas, cree una base de datos y le agregue la conexión de access,¿Pero no se como referirme en el programa a la conexión? Desde ya muchas gracias

1 respuesta

Respuesta
1
Como estas, si lo que quieres es trabajar con VFP con una DB access como si fueran naturales de vfp debes usa vistas remotas. Ej:
lcodbc='miodbc'
lcodbc=Lower(lcodbc)
LENCONTRO=.F.
**busca conexión
For i = 1 To Adbobjects(laTables, "CONNECTION")
If !Empty(laTables)
If Upper((laTables))=='EWEB'
LENCONTRO=.T.
Endif
Endif
Endfor
**si no existe la crea
If !LENCONTRO
lcdb='c:\data\midb.mdb'
If !File(lcdb)
=Messagebox('No se encuentra la Base de Datos Intermedia '+lcdb,16,business_loc)
Return .F.
Endif
Create Connection eweb Datasource (lcodbc) Database (lcdb)
Endif
***Busca vistas
For i = 1 To Adbobjects(laTables, "VIEW")
If !Empty(laTables)
Do Case
Case Upper((laTables))=='VE_FACTURA'
laevista[1]=.T.
Case Upper((laTables))=='VE_RENF_FACT'
laevista[2]=.T.
Endcase
Endif
Endfor
***si no existe las crea
If !laevista[1]
Create Sql View VE_FACTURA Remote Connection eweb Share As Select Factura.Fec_emis, Factura.Forma_pag, Factura.Neto, Factura.Orden,;
Factura.Documento, Factura.Cli_des, Factura.Rif, Factura.Dir,;
Factura.Email, Factura.Tasa, Factura.Telf;
FROM Factura Factura
If Thisform.ODBC
Return .F.
Endif
Use VE_FACTURA In 0 Nodata
Select VE_FACTURA
** Configurar campos como actualizables
** Se asume que el primer campo es el campo clave y los demás son campos
** Actualizables
lccampo=''
LC_CAMPO=''
For i=1 To Afields(lacampos)
lccampo='VE_FACTURA.'+lacampos[i,1]
LC_CAMPO='Factura.'+lacampos[i,1]
= DBSetProp(lccampo, "Field", Iif(i=1,"KeyField","Updatable"), .T.)
= DBSetProp(lccampo, "Field", "UpdateName", LC_CAMPO)
Endfor
**Configurar vista para que envíe actualizaciones SQL
= DBSetProp("VE_FACTURA", "VIEW","SendUpdates", .T.)
= DBSetProp("VE_FACTURA", "VIEW","WhereType", 1)
Use In VE_FACTURA
Endif
If !laevista[2]
Create Sql View VE_RENF_FACT Remote Connection eweb Share As Select Reng_fac.Orden, Reng_fac.Co_art, Reng_fac.Cant, Reng_fac.Precio,;
Reng_fac.Unidad, Reng_fac.Impuesto From Reng_fac Reng_fac;
WHERE Reng_fac.Orden = ?tc_orden
If Thisform.ODBC
Return .F.
Endif
Use VE_RENF_FACT In 0 Nodata
Select VE_RENF_FACT
** Configurar campos como actualizables
** Se asume que el 1 y 2 campo son el campo clave y los demás son campos
** Actualizables
lccampo=''
For i=1 To Afields(lacampos)
lccampo='VE_RENF_FACT.'+lacampos[i,1]
LC_CAMPO='Reng_fac.'+lacampos[i,1]
= DBSetProp(lccampo, "Field", Iif(i=1 Or i=2,"KeyField","Updatable"), .T.)
If i=2
= DBSetProp(lccampo, "Field", "Updatable", .T.)
Endif
= DBSetProp(lccampo, "Field", "UpdateName", LC_CAMPO)
Endfor
**Configurar vista para que envíe actualizaciones SQL
= DBSetProp("VE_RENF_FACT", "VIEW","SendUpdates", .T.)
= DBSetProp("VE_RENF_FACT", "VIEW","WhereType", 1)
Use In VE_RENF_FACT
Endif
Return .T.
Si lo quieres hacer por spt
Revisa sqlconect
Y sqlexec

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas