VFP con Base de Datos MS-SQL Server

1,323 views
Skip to first unread message

Aldo Santos Vargas

unread,
Jun 22, 2011, 11:41:43 PM6/22/11
to publice...@googlegroups.com

Hola a todos,

Estuve revisando muchos artículos para desarrollar aplicaciones VFP con SQL Server y ya tengo clara la idea de cómo realizarlo y lo que aun no entiendo son pequeños puntos como:

·         Para obtener 500 registros y mostrarlos en una grilla, cual es la recomendable:

o    Hacerlo desde el Environment  como vista remota o con Cursor Adapter.

o    Mediante una función que invoca a un SP_ de SQL Server y luego lo coloco en un cursor en el método Init de la Grilla o método Init del Formulario.

o    Existe otra forma de realizarlo?

 

·         Recomiendan usar 3 capas o 4 capas (Interfaz, Negocio, Conexión, Data)

·         Se recomienda por defecto mostrar todos los registros (1200 movimientos al año por producto) o se debe utilizar algún parámetro para mostrar todos los movimientos

·         Recomiendan usar conexión ADO o el clásico SQLConnect, SQLStringConnect, SQLExec

 

Bueno, son consultas que ando tratando de darles una respuesta para estandarizarlo en todo el proyecto que estoy por iniciar.

 

Saludos,

Aldo Santos Vargas



__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 6177 (20110603) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com

Walter R. Ojeda Valiente

unread,
Jun 23, 2011, 2:34:41 AM6/23/11
to publice...@googlegroups.com
Hola Aldo

- Mostrar 500 registros en una grilla es un grandísimo error de concepto. Si vas a usar SQL tu interfaz debe ser de búsqueda, no de grilla.

- Cuantas más capas uses, estarás más organizado. Pero cuantos más capas uses más se complicará tu programación. Por lo tanto en general se recomienda usar 3 ó 4.

- No debes jamás mostrar todos los registros, salvo en un informe o salvo que sean pocos (nunca más de 100) y para casos muy especiales.

- Puedes usar ADO, ODBC, CursorAdapter, SQLPassThrough, todos tienen sus ventajas y sus desventajas. Al final es cuestión de gustos.

Saludos.

Walter.




From: aldo....@aop.com.pe
To: publice...@googlegroups.com
Subject: [vfp] VFP con Base de Datos MS-SQL Server
Date: Wed, 22 Jun 2011 22:41:43 -0500

Luis Mata

unread,
Jun 23, 2011, 10:00:26 AM6/23/11
to publice...@googlegroups.com
- Trabajar full procedimientos almacenados, insert, update, delete y hasta el select
- Mostrar solo los datos que se necesiten, los que no al traerlos solo consume recursos innecesarios
- Si trabajas con transacciones, para que vas a mostrar todo el año, yo en lo personal solo muestro del dia nada mas, facturas, proformas, ingresos..etc
- Trabajo con ODBC y SQLconnect() el mas sencillo
 
LM
 
Sent: Wednesday, June 22, 2011 10:41 PM
Subject: [vfp] VFP con Base de Datos MS-SQL Server
 

Hola a todos,

HDA HDA54

unread,
Jun 23, 2011, 10:17:16 AM6/23/11
to publice...@googlegroups.com
Estimado Walter :
Trabajo en el ámbito de la auditoría, como haces cuando tenés máa de 500 registros por día para controlar o simplemente auditar estadísticamente. Cual es tu método ?
Saludos Cordiales.

Sebastian Mercado

unread,
Jun 23, 2011, 10:18:13 AM6/23/11
to publice...@googlegroups.com
Yo uso, para conectarme el sqlstringconnect y para trabajar luego SQLEXEC, nada mas!. 
Por experiencia te recomiendo no usar vistas... no quiero recordar las cosas que me hicieron.. en el VFP6, no se si mejoraron después.
No he trabajado con otra cosa.

Con respecto a la cantidad de registros jamas tuve problema, hay q tener un poco de criterio según lo que se este haciendo.

Daniel Sánchez

unread,
Jun 23, 2011, 10:28:16 AM6/23/11
to publice...@googlegroups.com
Lo de la cantidad de registros a consultar no hay que confundir entre lo aconsejado y lo necesitado que no siempre pueden ir de la mano, si como comentas existen movimientos del día que superan la cantidad aconsejada no hay que tampoco alarmarse tanto, no por eso le vas ha decir al usuario cantidad a visualizar no permitida y lo dejas sin su información. En todo caso la recomendación viene dada en relación a la saturación de la red y el exceso uso del servidor para casos que no necesitamos tener todos los datos o no son relevantes, ademas hay que considerar que no todos los usuarios van trayendo ingentes cantidad de información que es poco probable pero no imposible. Por eso es bueno trabajar con filtros para realizar las consultas y poner por defecto dichos filtros inicialmente con consultas del día, el usuario los cambia de acuerdo a su requerimiento.

Saludos

--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

Sebastian Mercado

unread,
Jun 23, 2011, 10:35:39 AM6/23/11
to publice...@googlegroups.com
Si la busquedas las haces con un SEEK, no es que NO podrías, lo puedes hacer también, pero no seria efectivo. Solo tienes que cambiar la forma, en mis aplicaciones uso eso constantemente y utilizo SQL Server.
Cuando el usuario ingresa parte del nombre, realizas la busqueda al motor de DB mediante SQLEXEC, enviando la sentencia o llamando a un procediemiento con los datos ingresados.
Use esto en Mysql con ASP.. es esto lo que dices que no puedes hacer?




El 23 de junio de 2011 11:28, Eric Natareno Guerra <tqany...@gmail.com> escribió:
Amigos, tengo una inquietud, soy nuevo también en este ámbito, pues he trabajado solamente en tablas nativas de vfp9. Mi pregunta es Tengo un formulario para efectuar pedidos, el usuario no se sabe los codigos pues es una tabla de 2000 registros aprox, en un textbox escribe parte del nombre del producto y en una grilla se despliegan los que cumplan con esas caracteristicas, ayudando asi al usuario a localizar el producto a vender. Por lo que estaba leyendo esto no seria posible usando MySQL o algun otro mototr de bases de datos, o ustedes podrian indicarme si es posible?

Luis Mata

unread,
Jun 23, 2011, 10:44:08 AM6/23/11
to publice...@googlegroups.com
YA MALOGRASTE EL HILO, NO PUEDES ABRIR OTRO??
 
Sent: Thursday, June 23, 2011 9:28 AM
Subject: Re: [vfp] VFP con Base de Datos MS-SQL Server
 
Amigos, tengo una inquietud, soy nuevo también en este ámbito, pues he trabajado solamente en tablas nativas de vfp9. Mi pregunta es Tengo un formulario para efectuar pedidos, el usuario no se sabe los codigos pues es una tabla de 2000 registros aprox, en un textbox escribe parte del nombre del producto y en una grilla se despliegan los que cumplan con esas caracteristicas, ayudando asi al usuario a localizar el producto a vender. Por lo que estaba leyendo esto no seria posible usando MySQL o algun otro mototr de bases de datos, o ustedes podrian indicarme si es posible?

El 23 de junio de 2011 08:18, Sebastian Mercado <sebam...@gmail.com> escribió:

Eric Natareno Guerra

unread,
Jun 23, 2011, 10:28:17 AM6/23/11
to publice...@googlegroups.com
Amigos, tengo una inquietud, soy nuevo también en este ámbito, pues he trabajado solamente en tablas nativas de vfp9. Mi pregunta es Tengo un formulario para efectuar pedidos, el usuario no se sabe los codigos pues es una tabla de 2000 registros aprox, en un textbox escribe parte del nombre del producto y en una grilla se despliegan los que cumplan con esas caracteristicas, ayudando asi al usuario a localizar el producto a vender. Por lo que estaba leyendo esto no seria posible usando MySQL o algun otro mototr de bases de datos, o ustedes podrian indicarme si es posible?

El 23 de junio de 2011 08:18, Sebastian Mercado <sebam...@gmail.com> escribió:

Eric Natareno Guerra

unread,
Jun 23, 2011, 10:47:26 AM6/23/11
to publice...@googlegroups.com
Gracias por contestar Sebastian, como te cuento, soy nuevo en la utilización de Motores de DB y le estoy entrando poco a poco, y toda información para mi es valiosísima.

Alci

unread,
Jun 23, 2011, 12:31:53 PM6/23/11
to Comunidad de Visual Foxpro en Español
En la ayuda del vfp hay un apartado que trata sobre esto.

El titulo es "Crear aplicaciones Cliente-Servidor" que esta dentro de
"Uso de Visual FoxPro" esto es en la ayuda de la versión 7 en español,
si no lo tienen les paso por correo.

En la ayuda explica muchas cosas que hay que tener en cuenta a la
hora de diseñar un sistema cliente-servidor.

- Diseño de aplicaciones cliente-servidor
- Diseño cliente-servidor para un elevado rendimiento
- Mejorar el rendimiento del acceso a datos.
-...etc.
- Implementar una aplicación cliente-servidor.
- Usar tecnología de paso a través de SQL
- Crear consultas parametrizadas
- Administrar conexiones...
-...etc.
- Trabajar con con datos remotos mediante la tecnología de paso a
través de SQL
- Optimizacion de rendimiento de cliente-servidor.
- Optimizar el uso de conexiones
- Acelerar la recuperación de datos
- Acelerar consultas y vistas.
- Acelerar formularios.
- Mejorar rendimiento de las actualizaciones y eliminaciones.

En la ayuda hay suficiente información con ejemplos y gráficos que
explican como funciona... es muy importante ver la parte de Bufer que
se encuentra en la parte de "Uso de Visual FoxPro"... "Ampliar
Aplicación"... "Programar para acceso compartido"..."Control de Acceso
a Datos"
- Usar Sesione de datos
- Almacenar datos en bufer.

Una vez que leas y comprendas estos temas ya estarás listo para
empezar tu aplicación cliente/servidor.

Saludos y éxitos.

Alcides Portillo.

On 23 jun, 10:47, Eric Natareno Guerra <tqanyou...@gmail.com> wrote:
> Gracias por contestar Sebastian, como te cuento, soy nuevo en la utilización
> de Motores de DB y le estoy entrando poco a poco, y toda información para mi
> es valiosísima.
>
> El 23 de junio de 2011 08:35, Sebastian Mercado <sebamerc...@gmail.com>escribió:
>
>
>
>
>
>
>
> > Si la busquedas las haces con un SEEK, no es que NO podrías, lo puedes
> > hacer también, pero no seria efectivo. Solo tienes que cambiar la forma, en
> > mis aplicaciones uso eso constantemente y utilizo SQL Server.
> > Cuando el usuario ingresa parte del nombre, realizas la busqueda al motor
> > de DB mediante SQLEXEC, enviando la sentencia o llamando a un procediemiento
> > con los datos ingresados.
> > Use esto en Mysql con ASP.. es esto lo que dices que no puedes hacer?
>
> > El 23 de junio de 2011 11:28, Eric Natareno Guerra <tqanyou...@gmail.com>escribió:
>
> > Amigos, tengo una inquietud, soy nuevo también en este ámbito, pues he
> >> trabajado solamente en tablas nativas de vfp9. Mi pregunta es Tengo un
> >> formulario para efectuar pedidos, el usuario no se sabe los codigos pues es
> >> una tabla de 2000 registros aprox, en un textbox escribe parte del nombre
> >> del producto y en una grilla se despliegan los que cumplan con esas
> >> caracteristicas, ayudando asi al usuario a localizar el producto a vender.
> >> Por lo que estaba leyendo esto no seria posible usando MySQL o algun otro
> >> mototr de bases de datos, o ustedes podrian indicarme si es posible?
>
> >> El 23 de junio de 2011 08:18, Sebastian Mercado <sebamerc...@gmail.com>escribió:
>
> >>> Yo uso, para conectarme el sqlstringconnect y para trabajar luego
> >>> SQLEXEC, nada mas!.
> >>> Por experiencia te recomiendo no usar vistas... no quiero recordar las
> >>> cosas que me hicieron.. en el VFP6, no se si mejoraron después.
> >>> No he trabajado con otra cosa.
>
> >>> Con respecto a la cantidad de registros jamas tuve problema, hay q tener
> >>> un poco de criterio según lo que se este haciendo.
>
> >>> El 23 de junio de 2011 11:00, Luis Mata <lm...@cclf.com.pe> escribió:
>
> >>>   - Trabajar full procedimientos almacenados, insert, update, delete y
> >>>> hasta el select
> >>>> - Mostrar solo los datos que se necesiten, los que no al traerlos solo
> >>>> consume recursos innecesarios
> >>>> - Si trabajas con transacciones, para que vas a mostrar todo el año, yo
> >>>> en lo personal solo muestro del dia nada mas, facturas, proformas,
> >>>> ingresos..etc
> >>>> - Trabajo con ODBC y SQLconnect() el mas sencillo
>
> >>>> LM
>
> >>>>  *From:* Aldo Santos Vargas <aldo.san...@aop.com.pe>
> >>>> *Sent:* Wednesday, June 22, 2011 10:41 PM
> >>>> *To:* publice...@googlegroups.com
> >>>> *Subject:* [vfp] VFP con Base de Datos MS-SQL Server
>
> >>>> *Hola a todos,*
>
> >>>> *Estuve revisando muchos artículos para desarrollar aplicaciones VFP
> >>>> con SQL Server y ya tengo clara la idea de cómo realizarlo y lo que aun no
> >>>> entiendo son pequeños puntos como:*
>
> >>>> ·         *Para obtener 500 registros y mostrarlos en una grilla, cual
> >>>> es la recomendable:*
>
> >>>> o    *Hacerlo desde el Environment  como vista remota o con Cursor
> >>>> Adapter.*
>
> >>>> o    *Mediante una función que invoca a un SP_ de SQL Server y luego lo
> >>>> coloco en un cursor en el método Init de la Grilla o método Init del
> >>>> Formulario.*
>
> >>>> o    *Existe otra forma de realizarlo?*
>
> >>>> **
>
> >>>> ·         *Recomiendan usar 3 capas o 4 capas (Interfaz, Negocio,
> >>>> Conexión, Data)*
>
> >>>> ·         *Se recomienda por defecto mostrar todos los registros (1200
> >>>> movimientos al año por producto) o se debe utilizar algún parámetro para
> >>>> mostrar todos los movimientos*
>
> >>>> ·         *Recomiendan usar conexión ADO o el clásico SQLConnect,
> >>>> SQLStringConnect, SQLExec *
>
> >>>> **
>
> >>>> *Bueno, son consultas que ando tratando de darles una respuesta para
> >>>> estandarizarlo en todo el proyecto que estoy por iniciar.*
>
> >>>> **
>
> >>>> *Saludos,*
>
> >>>> *Aldo Santos Vargas***

Walter R. Ojeda Valiente

unread,
Jun 23, 2011, 1:51:39 PM6/23/11
to publice...@googlegroups.com
De ser posible sí que es posible. Pero no es recomendable.

¿Por qué no? Porque están viajando desde el Servidor hasta tu computadora cientos o miles de datos, de los cuales ... solamente te interesa uno de ellos.

O sea que la red está teniendo un tráfico enorme y totalmente innecesario. Imagínate que varios usuarios hagan eso al mismo tiempo.

Cuando se trabaja en Cliente/Servidor hay que tratar de disminuir el tráfico en la red. Hay que buscar la forma de que sea el mínimo posible.

¿Cuál es la solución? Tener una tabla local con los códigos y los nombres de los productos. El usuario busca allí lo que desea. Una vez que se conoce el código del producto que le interesa entonces se lo trae desde el Servidor. Por lo tanto, desde el Servidor hacia el Cliente viajaron los datos de un solo producto, no los datos de cientos o de miles de productos.

Puedes leer un poco más sobre este tema en el documento "Visual FoxPro y Firebird SQL" y puedes ver una aplicación práctica, con su código fuente incluido, en SQL_DEMO.

http://www.mediafire.com/?nb74e3oaf9g9l4j

http://www.mediafire.com/?dugbqkqt4tx6bdl

Saludos.

Walter.





Date: Thu, 23 Jun 2011 08:28:17 -0600
Subject: Re: [vfp] VFP con Base de Datos MS-SQL Server
From: tqany...@gmail.com
To: publice...@googlegroups.com

Walter R. Ojeda Valiente

unread,
Jun 23, 2011, 2:12:46 PM6/23/11
to publice...@googlegroups.com
Si sabes que los 500 ó más registros serán leídos desde el Servidor una sola vez por día y que sí o sí serán visualizados, entonces podrías traerlos. Pero si:
- Traes 500 registros
- El usuario cambió a otra opción
- Regresó al programa
- Traes nuevamente los mismos 500 registros
- El usuario cambió a otra opción
- Regresó al programa
- Vuelves a traer los mismos 500 registros
- Y así sucesivamente

Es totalmente ineficiente.

Para estos casos lo mejor es traer una cantidad pequeña de registros, digamos 50. Si el usuario necesita más entonces hace click sobre el botón "Siguiente" el cual le mostrará los siguientes 50 registros.

Y si 50 es excesivo, porque no los usa a todos de una sola vez, entonces pones 20 o el número que sea más apropiado para que el tráfico del Servidor al Cliente sea el mínimo posible.

Saludos.

Walter.




Date: Thu, 23 Jun 2011 11:17:16 -0300
Subject: Re: [vfp] VFP con Base de Datos MS-SQL Server
From: hda...@gmail.com
To: publice...@googlegroups.com

J. Enrique Ramos Menchaca

unread,
Jun 23, 2011, 7:43:14 PM6/23/11
to Comunidad de Visual Foxpro en Español
Se me ocurrio porque no traer los registros de forma progresiva,
existe un ejemplo en fpress, te dejo el link:

http://www.fpress.com/revista/num0906/truco.htm

y este otro:

http://www.monografias.com/trabajos35/aplicacion-visualfoxpro9/aplicacion-visualfoxpro9.shtml

Aldo Santos

unread,
Jun 23, 2011, 8:09:13 PM6/23/11
to Comunidad de Visual Foxpro en Español
Hola,
Muchas gracias a todos, eso es lo que voy a hacer despues de leer la
mayoria de los comentarios...

Saludos
Aldo Santos

On 23 jun, 18:43, "J. Enrique Ramos Menchaca" <jeram...@gmail.com>
wrote:
> Se me ocurrio porque no traer los registros de forma progresiva,
> existe un ejemplo en fpress, te dejo el link:
>
> http://www.fpress.com/revista/num0906/truco.htm
>
>  y este otro:
>
> http://www.monografias.com/trabajos35/aplicacion-visualfoxpro9/aplica...
>
> On 22 jun, 22:41, "Aldo Santos Vargas" <aldo.san...@aop.com.pe> wrote:
>
>
>
> > Hola a todos,
>
> > Estuve revisando muchos artículos para desarrollar aplicaciones VFP con SQL
> > Server y ya tengo clara la idea de cómo realizarlo y lo que aun no entiendo
> > son pequeños puntos como:
>
> > ·         Para obtener 500 registros y mostrarlos en una grilla, cual es la
> > recomendable:
>
> > o    Hacerlo desde el Environment  como vista remota o con Cursor Adapter.
>
> > o    Mediante una función que invoca a un SP_ de SQL Server y luego lo
> > coloco en un cursor en el método Init de la Grilla o método Init del
> > Formulario.
>
> > o    Existe otra forma de realizarlo?
>
> > ·         Recomiendan usar 3 capas o 4 capas (Interfaz, Negocio, Conexión,
> > Data)
>
> > ·         Se recomienda por defecto mostrar todos los registros (1200
> > movimientos al año por producto) o se debe utilizar algún parámetro para
> > mostrar todos los movimientos
>
> > ·         Recomiendan usar conexión ADO o el clásico SQLConnect,
> > SQLStringConnect, SQLExec
>
> > Bueno, son consultas que ando tratando de darles una respuesta para
> > estandarizarlo en todo el proyecto que estoy por iniciar.
>
> > Saludos,
>
> > Aldo Santos Vargas- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Aldo Santos

unread,
Jun 23, 2011, 8:14:53 PM6/23/11
to Comunidad de Visual Foxpro en Español
Hola,
Eso es cierto..el usuario podra entrar a la opcion varias veces al dia
o a otras opciones...lo ideal es hacerlo segun el criterio que tenga
el cliente o la necesidad del producto que desea buscar y ver sus
movimientos.

Saludos

On 23 jun, 13:12, "Walter R. Ojeda Valiente" <w...@hotmail.com> wrote:
> Si sabes que los 500 ó más registros serán leídos desde el Servidor una sola vez por día y que sí o sí serán visualizados, entonces podrías traerlos. Pero si:
> - Traes 500 registros
> - El usuario cambió a otra opción
> - Regresó al programa
> - Traes nuevamente los mismos 500 registros
> - El usuario cambió a otra opción
> - Regresó al programa
> - Vuelves a traer los mismos 500 registros
> - Y así sucesivamente
>
> Es totalmente ineficiente.
>
> Para estos casos lo mejor es traer una cantidad pequeña de registros, digamos 50. Si el usuario necesita más entonces hace click sobre el botón "Siguiente" el cual le mostrará los siguientes 50 registros.
>
> Y si 50 es excesivo, porque no los usa a todos de una sola vez, entonces pones 20 o el número que sea más apropiado para que el tráfico del Servidor al Cliente sea el mínimo posible.
>
> Saludos.
>
> Walter.
>
> Date: Thu, 23 Jun 2011 11:17:16 -0300
> Subject: Re: [vfp] VFP con Base de Datos MS-SQL Server
> From: hda...@gmail.com
> To: publice...@googlegroups.com
>
> Estimado Walter :Trabajo en el ámbito de la auditoría, como haces cuando tenés máa de 500 registros por día para controlar o simplemente auditar estadísticamente. Cual es tu método ?Saludos Cordiales.
>
> El 23 de junio de 2011 03:34, Walter R. Ojeda Valiente <w...@hotmail.com> escribió:
>
> Hola Aldo
>
> - Mostrar 500 registros en una grilla es un grandísimo error de concepto. Si vas a usar SQL tu interfaz debe ser de búsqueda, no de grilla.
>
> - Cuantas más capas uses, estarás más organizado. Pero cuantos más capas uses más se complicará tu programación. Por lo tanto en general se recomienda usar 3 ó 4.
>
> - No debes jamás mostrar todos los registros, salvo en un informe o salvo que sean pocos (nunca más de 100) y para casos muy especiales.
>
> - Puedes usar ADO, ODBC, CursorAdapter, SQLPassThrough, todos tienen sus ventajas y sus desventajas. Al final es cuestión de gustos.
>
> Saludos.
>
> Walter.
>
> From: aldo.san...@aop.com.pe
> To: publice...@googlegroups.com
>
> Subject: [vfp] VFP con Base de Datos MS-SQL Server
> Date: Wed, 22 Jun 2011 22:41:43 -0500
>
> Hola a todos,Estuve revisando muchos artículos para desarrollar aplicaciones VFP con SQL Server y ya tengo clara la idea de cómo realizarlo y lo que aun no entiendo son pequeños puntos como:
> ·         Para obtener 500 registros y mostrarlos en una grilla, cual es la recomendable:
> o    Hacerlo desde el Environment  como vista remota o con Cursor Adapter.
> o    Mediante una función que invoca a un SP_ de SQL Server y luego lo coloco en un cursor en el método Init de la Grilla o método Init del Formulario.
> o    Existe otra forma de realizarlo?
>  ·         Recomiendan usar 3 capas o 4 capas (Interfaz, Negocio, Conexión, Data)
> ·         Se recomienda por defecto mostrar todos los registros (1200 movimientos al año por producto) o se debe utilizar algún parámetro para mostrar todos los movimientos
> ·         Recomiendan usar conexión ADO o el clásico SQLConnect, SQLStringConnect, SQLExec
>  Bueno, son consultas que ando tratando de darles una respuesta para estandarizarlo en todo el proyecto que estoy por iniciar.
>  Saludos,Aldo Santos Vargas

Aldo Santos

unread,
Jun 23, 2011, 8:19:17 PM6/23/11
to Comunidad de Visual Foxpro en Español
Hola,
Gracias por el aporte y he leido la documentacion des la ayuda pero
tambien mi idea era de saber de aquellas personas que ya han realizado
este tipo de desarrollo, cual era lo ideal para solicitar informacion
porque normalmente lo que indica la teoria no siempre es lo ideal para
desarrollos aunque estare utilizando POO para este desarrollo y para
cualquier consulta o insersion hare un SP_ segun sea el caso, ademas
de abrir la conexion cuando sea necesario para no saturar la memoria o
pierda la conexion con la base de datos.

Muchas gracias por tu aporte y el de todos que me estan ayudando a
establecer parametros para seguirlos...

Saludos
Aldo Santos
> > >>>>http://www.eset.com- Ocultar texto de la cita -

Aldo Santos

unread,
Jun 23, 2011, 8:21:33 PM6/23/11
to Comunidad de Visual Foxpro en Español
Hola Walter,
Gracias por el concepto, creo que todos coiciden en que no debo
obtener toda la informacion desde un momento ya que creo que lo hara
muy lento al momento de visualizarl el formulario...

Saludos
Aldo Santos


On 23 jun, 01:34, "Walter R. Ojeda Valiente" <w...@hotmail.com> wrote:
> Hola Aldo
>
> - Mostrar 500 registros en una grilla es un grandísimo error de concepto. Si vas a usar SQL tu interfaz debe ser de búsqueda, no de grilla.
>
> - Cuantas más capas uses, estarás más organizado. Pero cuantos más capas uses más se complicará tu programación. Por lo tanto en general se recomienda usar 3 ó 4.
>
> - No debes jamás mostrar todos los registros, salvo en un informe o salvo que sean pocos (nunca más de 100) y para casos muy especiales.
>
> - Puedes usar ADO, ODBC, CursorAdapter, SQLPassThrough, todos tienen sus ventajas y sus desventajas. Al final es cuestión de gustos.
>
> Saludos.
>
> Walter.
>
> From: aldo.san...@aop.com.pe
> To: publice...@googlegroups.com
> Subject: [vfp] VFP con Base de Datos MS-SQL Server
> Date: Wed, 22 Jun 2011 22:41:43 -0500
>
> Hola a todos,Estuve revisando muchos artículos para desarrollar aplicaciones VFP con SQL Server y ya tengo clara la idea de cómo realizarlo y lo que aun no entiendo son pequeños puntos como:·         Para obtener 500 registros y mostrarlos en una grilla, cual es la recomendable:o    Hacerlo desde el Environment  como vista remota o con Cursor Adapter.o    Mediante una función que invoca a un SP_ de SQL Server y luego lo coloco en un cursor en el método Init de la Grilla o método Init del Formulario.o    Existe otra forma de realizarlo? ·         Recomiendan usar 3 capas o 4 capas (Interfaz, Negocio, Conexión, Data)·         Se recomienda por defecto mostrar todos los registros (1200 movimientos al año por producto) o se debe utilizar algún parámetro para mostrar todos los movimientos·         Recomiendan usar conexión ADO o el clásico SQLConnect, SQLStringConnect, SQLExec  Bueno, son consultas que ando tratando de darles una respuesta para estandarizarlo en todo el proyecto que estoy por iniciar. Saludos,Aldo Santos Vargas

Victor Espina

unread,
Jun 24, 2011, 6:35:14 PM6/24/11
to publice...@googlegroups.com
Totalmente de acuerdo contigo Walter. Y un grid "paginado" no es algo dificil de programar como control de usuario, de modo que luego sea cuestion de instanciar, configurar y listo.

Saludos

Victor Espina

Viktor Velazquez

unread,
Jul 1, 2011, 2:28:16 PM7/1/11
to publice...@googlegroups.com
Aprovechando el tema. estoy empezando con vfp- sql y tengo este problema de consulta a una tabla

con esta instruccion me fitra toda la tabla bien  x=SQLprepare(Nx, 'SELECT * FROM padron ','mypadron')
pero al queres hacer un filtro especifico de la sigueinte mmanera 

x=SQLprepare(Nx, 'SELECT * FROM padron WHERE (padron.nombre)=?xnom','mypadron')

 no me regresa nada

alguien ke me pueda ayudar o por procedimiento almacenado como seria la sintaxis
 Gracias 

pd. sorry. pero tengo blokeada la pagina para crear un tema nuevo. 

x=SQLEXEC(Nx)

IF (Nx<=0) then
MESSAGEBOX('No se pudo actualizar la BD 2',64,'Alerta')
else 
Thisform.grid1.RecordSource="mypadron"
Thisform.grid1.RecordSourcetype= 1



Date: Fri, 24 Jun 2011 15:35:14 -0700
From: vesp...@gmail.com
To: publice...@googlegroups.com
Subject: Re: RE: [vfp] VFP con Base de Datos MS-SQL Server

Luis Mata

unread,
Jul 1, 2011, 3:13:53 PM7/1/11
to publice...@googlegroups.com
Yo lo lanzo directamente:
 
xnom = ‘ARNALDO’
x=sqlexec(Nx, 'SELECT * FROM padron WHERE padron.nombre=?xnom','mypadron')
 
Ojo que estas pidiendo que te traiga nombre = ‘ARNALDO’ si LUIS ARNALDO ó ARNALDO MATA no te va a traer nada
para eso tendrias que hacer esto:
 
xnom = ‘ARNALDO’
x=sqlexec(Nx, “SELECT * FROM padron WHERE padron.nombre like ‘%”+xnom+”%’ ”,”mypadron”)
 
date cuenta el uso de las comillas, SQL no acepta (“) comillas dobles en su sentencia, todas las comillas que debas pasar deben de ser simples(‘). (o quizas haya esa no me la se.)
 
LM

Antonio Meza

unread,
Jul 1, 2011, 3:50:53 PM7/1/11
to publice...@googlegroups.com
Hola!!
 
Estoy usando mysql y no habia visto este post!!!
 
Tengo un programa de inventarios, el cual el usuario consulta los articulos al rededor de 3500 y los presento en un grid, no eh visto que sea lento ni que tarde nada en abrir el formuario, eso si, el usuario abre su terminal para la venta de productos y lo que hago es cargar la tabla de productos una sola vez, como les decia cerca de 3500 registros, cada vez que pasan un codigo lo busca en la tabla ya cargada, y se me hace que seria mas lento que cada vez que pase un artculo a venta vaya al servidor y busque su precio!!!
 
Tiene un boton Actualizar, lo que hace es nuevamente actualizar la lista de productos, esto solo si el dueño realizo cambio de precios o algun dato en los productos y notifica a los usuarios para que lo hagan de igual forma solo una vez.
 
Estoy haciendo bien?
 
saludos!!

Viktor Velazquez

unread,
Jul 1, 2011, 3:58:46 PM7/1/11
to publice...@googlegroups.com
aun no me trae nada
chk mi codigo luis en que estoy fallando.. gracias por tu tiempo.. 

cCadena = "driver={SQL Server};server=CIG99;uid=sa;pwd=mipass;database=dbax"
Nx = SQLSTRINGCONNECT(cCadena,.t. )
SQLSETPROP(Nx, 'DispLogin', 3) 
IF Nx < 1
MESSAGEBOX('No hay Conexion con la BD',64,'Alerta')
Return
ELSE
DO case
CASE Thisform.Sbscrollcontainer1.knom.Value=1
PRIVATE xnom
xnom = 'ARNOLDO'
       x=sqlexec(Nx, "SELECT * FROM padron WHERE padron.nombre like '%"+xnom+"%'","mypadron")
SQLEXEC(Nx)

IF (Nx<=0) then
MESSAGEBOX('No se pudo actualizar la BD 2',64,'Alerta')
else 
Thisform.grid1.RecordSource="mypadron"
Thisform.grid1.RecordSourcetype= 1
brow
ENDIF
SQLDISCONNECT(Nx)
ENDCASE
ENDIF


Date: Fri, 1 Jul 2011 12:50:53 -0700
From: solv...@gmail.com

To: publice...@googlegroups.com
Subject: Re: RE: [vfp] VFP con Base de Datos MS-SQL Server

Yvan GMAIL

unread,
Jul 1, 2011, 4:00:55 PM7/1/11
to publice...@googlegroups.com

Pq esto esta doble?

            x=sqlexec(Nx, "SELECT * FROM padron WHERE padron.nombre like '%"+xnom+"%'","mypadron")

                        SQLEXEC(Nx)

 

 

 

Saludos.

Yvan Carranza

Luis Mata

unread,
Jul 1, 2011, 4:01:01 PM7/1/11
to publice...@googlegroups.com
Y si se olvida en avisar?, si son N usuarios y N sucursales? y algunos no actualizan, mejor es traer los datos mas importantes desde el server, el precio por EJ.
 
LM
 
Sent: Friday, July 01, 2011 2:50 PM
Subject: Re: RE: [vfp] VFP con Base de Datos MS-SQL Server
 

Luis Mata

unread,
Jul 1, 2011, 4:12:19 PM7/1/11
to publice...@googlegroups.com
prueba esto en un PRG
 
cCadena = "driver={SQL Server};server=CIG99;uid=sa;pwd=mipass;database=dbax"
Nx = SQLSTRINGCONNECT(cCadena,.t. )
SQLSETPROP(Nx, 'DispLogin', 3)
IF Nx < 1
    MESSAGEBOX('No hay Conexion con la BD',64,'Alerta')
    Return
ELSE
    *DO case
    *CASE Thisform.Sbscrollcontainer1.knom.Value=1
    PRIVATE xnom
    xnom = 'ARNOLDO'
    x=sqlexec(Nx, "SELECT * FROM padron WHERE padron.nombre like '%"+xnom+"%'","mypadron")
 
    IF x < 0 then
        MESSAGEBOX('No se pudo actualizar la BD 2',64,'Alerta')
    else
    *Thisform.grid1.RecordSource="mypadron"
    *Thisform.grid1.RecordSourcetype= 1
    SELECT mypadron
    brow
    ENDIF
    SQLDISCONNECT(Nx)
    *ENDCASE
ENDIF

Walter R. Ojeda Valiente

unread,
Jul 1, 2011, 4:12:44 PM7/1/11
to publice...@googlegroups.com
No se puede olvidar, tu programa debería lanzar una aviso de que hay una actualización de precios (o de lo que sea) a todas las terminales las cuales la siguiente vez que lean esa tabla lo harán desde el Servidor para actualizar los precios. Una vez que estén actualizados seguirá usando la tabla local.

Saludos.

Walter.




From: lm...@cclf.com.pe
To: publice...@googlegroups.com
Subject: Re: [vfp] VFP con Base de Datos MS-SQL Server
Date: Fri, 1 Jul 2011 15:01:01 -0500

Yvan GMAIL

unread,
Jul 1, 2011, 4:17:33 PM7/1/11
to publice...@googlegroups.com

No olvidar el detalle de la minuscula.. mayuscula.

Digo. No vaya a ser que en la db este “Arnoldo” y se intenta buscar “ARNOLDO”

 

 

Saludos.

Yvan Carranza

Viktor Velazquez

unread,
Jul 1, 2011, 4:21:01 PM7/1/11
to publice...@googlegroups.com
no es ese el caso todo es mayusculas soryy si estaba duplicando la funcion gracias


To: publice...@googlegroups.com
Subject: RE: [vfp] VFP con Base de Datos MS-SQL Server
Date: Fri, 1 Jul 2011 15:17:33 -0500

ricardo peña

unread,
Jul 1, 2011, 4:25:00 PM7/1/11
to GRUPO-VFP GRUPO-VFP
Estoy intentando registrar una dll en W 7 Home Premium.
 
lo hago con :
 
REGSVR32 c:\midll.dll
 
y me da el siguiente error:
 
Se cargó el módulo c:\midll.dll pero se produjo un error  en la llamada a DllRegisterServer
(código de error 0x80004005)
 
y por supuesto mi aplicación en vfp no la encuentra.
 
Funciona perfectamente en xp.  He buscado por el lado del firewall pero no lo he podido
solucionar.
 
¿ A alguien le pasó ? ¿ Alguien me puede orientar ? 

Ricardo Luis Peña
Analista de Sistemas
BA - Argentina

ZeRoberto

unread,
Jul 1, 2011, 4:27:41 PM7/1/11
to publice...@googlegroups.com
Y si le copias en la misma carpeta de tu exe?

Saludos

2011/7/1 ricardo peña <rl...@hotmail.com>

Yvan GMAIL

unread,
Jul 1, 2011, 4:27:56 PM7/1/11
to publice...@googlegroups.com

Y si le metes dentro de una carpeta  y no directamente el C.. se que el W7 no permite la creación de archivos en la raiz.. salvo que desactives dicha directiva.

 

 

 

Saludos.

Yvan Carranza

Viktor Velazquez

unread,
Jul 1, 2011, 4:30:15 PM7/1/11
to publice...@googlegroups.com
yo las registro de esta manera

if file("MDMSNPopup.dll")
DECLARE DllRegisterServer IN MDMSNPopup.dll
resp=DllRegisterServer()
if resp=.f.
! regsvr32 /s MDMSNPopup.dll
ENDIF
ELSE
MESSAGEBOX('No se encuentra el archivo MDMSNPopup.dll...',64,'Consulte con el Administrador')
return
ENDIF
****



Subject: RE: [vfp] OT Registrar una dll
Date: Fri, 1 Jul 2011 15:27:56 -0500

Walter R. Ojeda Valiente

unread,
Jul 1, 2011, 4:33:16 PM7/1/11
to publice...@googlegroups.com
Ese problema sucede cuando el nivel de control de las cuentas del usuario está muy alto.

Debes ingresar al Panel de Control, Cuentas de Usuario, bajar al mínimo el nivel y luego registrar. Quizás necesites reiniciar la computadora antes de hacerlo.

Saludos.

Walter.




From: rl...@hotmail.com
To: publice...@googlegroups.com
Subject: [vfp] OT Registrar una dll
Date: Fri, 1 Jul 2011 20:25:00 +0000

ZeRoberto

unread,
Jul 1, 2011, 4:40:50 PM7/1/11
to publice...@googlegroups.com
Pero se necesita registrar cuando la DLL lo vas a copiar en otro directorio como System32, es para que tu aplicacion lo pueda encontrar, yo acostumbro a poner todas las librerias en la misma carpeta del exe.

Saludos

Oscar Díaz

unread,
Jul 1, 2011, 4:58:51 PM7/1/11
to publice...@googlegroups.com
Estimado Ricardo:

A mi me ocurrió y lo solucioné registrandolo en modo seguro entrando a windows con F8

Saludos desde Bogotá.co

2011/7/1 ricardo peña <rl...@hotmail.com>

ricardo peña

unread,
Jul 1, 2011, 4:58:25 PM7/1/11
to GRUPO-VFP GRUPO-VFP
Gracias Walter.  Funcionó bien.


Ricardo Luis Peña
Analista de Sistemas
BA - Argentina

 

From: wr...@hotmail.com
To: publice...@googlegroups.com
Subject: RE: [vfp] OT Registrar una dll
Date: Fri, 1 Jul 2011 20:33:16 +0000
Reply all
Reply to author
Forward
0 new messages