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 de netbuzos
1
1
netbuzos, Microsoft Certified Application Developer (MCAD) 4 strellas en el...
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