FoxPro/Visual FoxPro - vistas remotas con SQL server

   
Vista:

vistas remotas con SQL server

Publicado por José Menarguez (12 intervenciones) el 13/02/2008 00:00:49
Señores: Cansado de las roturas de bases de datos e indices de VFP, decidi empezar a trabajar con bases de datos SQL server. Todo funciona bien, creo la vista remota y abro la base y la trabajo como si fuera una dbf de fox.
Pero el problema es que no cuento con los indices de las tablas, tan utiles para busquedas y relaciones. Si me tomo el trabajo de reindexar las tablas cada vez que lo necesito, mi aplicacion se convierte en una tortuga pues indexar bases con 50000 registros lleva su tiempo.
Entonces: alguien tiene una solucion al respecto????? necesito indices pero no puedo crearlos cada vez, es muy lento.
Si alguien ya trabajo de este modo, por favor AYUDA!!!!!!
Gracias por sus sugerencias

José Menárguez
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:vistas remotas con SQL server

Publicado por DALSOM (609 intervenciones) el 13/02/2008 14:43:24
POR QUE NO LE DEJAS ESE TRABAJO DE LOS INDICES A SQL SERVER.
SON BUENOS, Y MEJORAN LA RAPIDEZ DE TU APLICACION.

TENDRAS UN POCO DE TRABAJO AL INICIO, PERO LOS RESULTADOS, SON VISIBLES EN TABLAS CON MUCHOS REGISTROS.

CREA TUS INDICES EN SQL, Y UTILIZA PATH TRUE DE FOX, MODIFICANDO TUS DATOS A TRAVES DE STORE PROCEDURES DE SQL, TRIGGERS Y DEMAS.

TAMBIEN SQL, PUEDE HACER RESTRICCIONES DE DATOS, Y TE AYUDA A MANTENER TU DATA SALUDABLE, SIN TRASH DATA, DE FORMA QUE SOLO DEBES PREOCUPARTE POR LOS ERRORES QUE TE ENVIA SQL, O CREA TU DESDE SQL TUS CHEQUEOS DE DATOS Y ENVIASELOS A FOX MEDIANTE UN ESTANDAR DE RESPUESTA CREADO POR TI EN UNA TABLA SENCILLA DE UN CAMPO CHAR, COMO DESCRIPCION DE LO SUCEDIDO EN CADA OPERACION DE DATOS EN SQL, ASI, NO RECIBES EL ERROR DIRECTO, Y PUEDES HACER TU PROPIA PRESENTACION DEL ERROR EN PANTALLA DESDE FOX.

SALUDOS,
DALSOM.

PS : SI ES CIERTO, FOX TAMBIEN ES RAPIDO Y MAS SENCILLO, PERO SUS TABLAS SE DAÑAN CONSTANTEMENTE EN AMBIENTE MULTIUSUARIO Y/O SHARED, SQL, ES MAS ROBUSTO EN ESTE ASPECTO, Y TE PERMITE ADMINISTRAR EL USO MEDIANTE USUARIOS EN LA BASE DE DATOS. ESE FUE EL MOTIVO POR EL CUAL CAMBIE A SQL.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:vistas remotas con SQL server

Publicado por jose camilo (688 intervenciones) el 13/02/2008 17:26:23
antes tenia el problema de ustedes ahora utilizo access
como soluciono esto de lentitud
un ejemplo
una buskeda de clientes con las siguientes caracteristicas

Nombre (Entero o por porcion)
Codigo
Cedula (Identificaion de la persona)

Si !empty(cedula )
SqlExec() La cedula igual al text de captacion
Else
Si !empty(codigo )
SqlExec() el codigo igual al text de captacion
Else
SqlExex() Toda la data
Set filter to Nombre = La condigion k kieres
EndIf
EndIf

Nota :Siempre carga los campos necesario, agiliza la buskeda

mira mi codigo

If JJWclientes <> "S"
SqlStr = "SELECT Cliente,Nombre,Cedula,Status,Sucursal FROM Cliente Where Empresa = ?Wgempresa ORDER BY Nombre"
Else
SqlStr = "SELECT Cliente,Nombre,Cedula,Status,Sucursal FROM Cliente ORDER BY Nombre"
EndIf
If SQLEXEC(JJClientes,SqlStr) > 0
If SubStr(Alltrim(m.nombre),1,1) != "*" and SubStr(m.nombre,len(alltrim(m.nombre)),1) != "*"
If !Empty(m.Nombre)
Set Filter to Alltrim(nombre) = AllTrim(m.nombre) .And. Iif(!Empty(CSucursal),Alltrim(Sucursal)==Alltrim(CSucursal),!Empty(Nombre))
Else
If !Empty(m.cedula)
Set Filter to Alltrim(cedula) = AllTrim(m.cedula) .And. Iif(!Empty(CSucursal),Alltrim(Sucursal)==Alltrim(CSucursal),!Empty(Nombre))
Else
If !Empty(m.cliente)
Set Filter to Alltrim(cliente) = AllTrim(m.cliente) .And. Iif(!Empty(CSucursal),Alltrim(Sucursal)==Alltrim(CSucursal),!Empty(Nombre))
Else
Set Filter to Iif(!Empty(CSucursal),Alltrim(Sucursal)==Alltrim(CSucursal),!Empty(Nombre))
EndIf
EndIf
EndIf
Else
Set Filter To At(substr(m.nombre,2,len(alltrim(m.nombre))-2),Upper(nombre)) > 0
EndIf
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar