Vous êtes sur la page 1sur 10

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO Respondiendo a tu pregunta Amigo Carlos Jos Garca Gil, sobre

la filtracin de los registros encontrados en SQL: Preguntas establecidas:

Este es el formulario con el que tengo el principal problema. EL Filtro empieza con el combo1 que es igual a locacin. quiero que cuando se seleccione me muestre todos departamentos existentes en esa localidad que esta en SQL. SELECT Departamento.departamento; FROM systeman!departamento; WHERE Departamento.locacion = THISFORM.COMBO1.VALUE; Into table bum Aqui lo selecciono.

Y luego me bloque la tabla como a continuacin:

CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO

Este es el otro SQL para q me seleccione los USUARIOS pertenecientes a los DEPARTAMENTOS: SELECT usuario.usuario; FROM systeman!usuario; WHERE usuario.Departamento = THISFORM.COMBO2.VALUE; into table usu; El Problema esta cuando intento enlazar las tablas free que estoy creando con el SQL sea donde guarda los registro que filtra. Este es el modelo lgico:

CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO

Modelo Fisico: Seguridad: Esta tabla almacena los registros de los usuarios del sistema. Tipo de Nombre Clave Carcter Cant Descripcin Loging PK Carcter 10 Usuario de Sistema Nombre Carcter 25 Nombre de Usuario Clave Carcter 8 Clave de Usuario Statud_System Carcter 2 Estado de Usuario Ultima fecha de Entrada Entrada Fecha 8 Sistema Ultima hora de Entrada Hora Carcter 12 Sistema Nivel Carcter 15 Nivel de Usuario

al al

Computer: Esta tabla almacena los registros de equipo de computacin de la empresa. Tipo de Nombre Clave Carcter Cant Descripcin Service Tag de Equipos de Servitag PK Carcter 12 Computacin Usuario FK Carcter 10 Usuario de Equipos Locacin donde esta ubicado el Locacin FK Carcter 20 equipo Departamento Carcter 20 Departamentos de la empresa Compra Fecha 8 Fecha de Compra Garantia Carcter 10 Tiempo de Garanta del Equipos SO Carcter 20 Sistema Operativo del Equipo MM Entero 4 Cantidad de Memoria del Equipo Procesador Carcter 10 Procesador del Equipo DD Entero 4 Disco Duro del Equipo Departamentos: Almacena los datos de los Departamentos de la empresa. Tipo de Nombre Clave Carcter Cant Descripcin Cod_Dep PK Carcter 10 Cdigo de Departamento Lugar donde esta ubicado la Locacion FK Carcter 20 empresa Departamento Carcter 20 Departamento de la empresa Locacion: Almacena las Ciudades donde se encuentra ubicada la empresa. Tipo de Nombre Clave Carcter Cant Descripcin Locacin donde esta ubicado el Locacion PK Carcter 20 usuario
CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO Usuario: Almacena los datos de los usuarios de los equipos de computacin. Tipo de Nombre Clave Carcter Cant Descripcin Usuario PK Carcter 10 Usuario de Equipos Locacin donde esta ubicado el Locacion FK Carcter 20 usuario Departamento FK Carcter 20 Departamento en el que labora Cargo Carcter 25 Cargo del Usuario Nombre del Supervisor del Supervisor Carcter 30 Usuario Ingreso Fecha 8 Fecha de Ingreso a la empresa SS Carcter 2 Sistema Sun System CE Carcter 2 Correo Electrnico I Carcter 2 Internet V Carcter 2 System Visual N Carcter 2 Nomina F Carcter 2 Finanzas Helpdesk: Tabla donde se almacenan los datos de las actividades de servicio y soporte tcnico Tipo de Nombre Clave Carcter Cant Descripcin Cod_Help PK Carcter 10 Cdigo de Helpdesk Servicetag FK Carcter 12 Service Tag del Equipo Usuario Carcter 10 Usuario de Equipo Fec_sol Fecha 8 Fecha de solucin Fec_atn Fecha 8 Fecha de Intencin Solicitud Carcter 50 Solicitud del Usuario Trabajo Carcter 50 Trabajo Realizado Observacion Carcter 60 Observacin de la Actividad Statud Carcter 10 Estado de la Solicitud Mantenimiento: Guarda los registros realizados. Tipo de Nombre Clave Carcter Cod_mant PK Carcter Servicetag FK Carcter Usuario Carcter Fec_man Fecha AA Carcter ET LP EUD DD Carcter Carcter Carcter Carcter de los mantenimientos preventivo Cant 10 12 10 8 2 2 2 2 2 Descripcin Cdigo de Mantenimiento Service Tag del Equipo Usuario de Equipo Fecha de Mantenimiento Actualizacin de Antivirus Eliminacin de Archivos Temporales Limpieza de Papelera de Reciclaje Escaneo de Unidades con el Antivirus Desfragmentacin de Unidades

CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO de Disco Dando solucin, lo primero que debes de debes de considerar ante el enlace que estas estableciendo con la base de datos de SQL y Visual fox es que debes de realizar la conexin desde tu programa inicial en Foxpro. Ahora cuando hablamos del enlace que deba tener con la base de datos del SQL es que debas de crear una conexin con el comando SQLCONNECT() desde visual foxpro. Te detallare mas solidamente un poco mas sobre el tema antes de dar respuesta a tu consulta. Es preciso resaltar que el manejo de SQL lo detallare en forma rpida, a fin de poder explayarme con la conectividad con tu base de datos que debas efectuar desde tu programa inicio.

CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO Repasando en forma breve el entorno SQL
Dentro de los pasos principales para ingresar al Administrador Corporativo de SQL los pasos son, ingresar al men inicio, luego seleccionar programas y luego ingresamos ala opcion de Administrador corporativo.

Como podemos observar en este ejemplo grafico, hemos creado la base de datos llamada COLOMBIA y ahora procederemos a crear las tablas internas de la base de datos

Luego activamos el Administrador de Servicios del SQL e inmediatamente despus, damos clic en la opcion de ejecutar el motor de la data del servidor a ejecutar como local.

Observemos que cuando desplegamos el icono de la base datos llamada COLOMBIA, nos mostrara opciones dentro del rbol en el panel izquierdo de la consola, el cual seleccionamos tablas y dentro de ella procederemos a crear cada una de las tablas que se requiera. Ahora la pregunta es la siguiente, el cual la mayora de los programadores u operadores consultan, pues como hacemos la conexin; pues lo podemos hacer de diferentes manera, una de ellas es la conexin ADO, otra mediante un archivo INI y otra es mediante una conexin ODBC el cual es mas sencillo y rpido. Damos clic en el men inicio, luego en panel de control y por ultimo en herramientas administrativas y nos mostrara una ventana similar a esta el cual ejecutaremos la conexin.

Ahora vemos que se encuentra activado, pues ahora si deseamos crear tablas en la base de datos del SQL, damos clic derecho en el panel de la parte lateral derecha y seleccionamos crear database

Aparentemente es tan difcil ejecutar una conexin de las bases de SQL hacia cualquier lenguaje de programacin, pero lo ideal es ensear a cada uno de los operadores las funciones principales y necesarias paso a paso. Y con la Ayuda y Bendicin de DIOS las cosas difciles se tornan fciles en el manejo de las sentencias y funciones y dudas sobre ellas. Una de las preguntas que se ejecutan en entorno de las mismas es ? Y estando dentro del ODBC cuales son los

CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO


pasos pues vamos a realizar ahora los pasos de modo sencillo y grafico. Ahora ingresamos el nombre de la conexin que queramos darlo a nuestro trabajo, en este caso como ejemplo lo nombraremos COLOMBIA.

Seleccionamos la opcin de nuevo, para luego escoger dentro de los programas la opcin de SQL SERVER.

Ahora veamos que hemos dado clic sobre las opciones cuyo icono esta marcado y en la siguiente pestaa me mostrara la base de datos que se haya generado en SQL.

Y como vemos nos muestra la ventana donde debemos de colocar los nombres de la base de datos del SQL y los nombres de la conexin a efectuar

C omo vemos ya tenemos realizado el 95% de nuestra conexin ODBC lista para ejecutarse desde cualquier lenguaje de programacin mediante una conexin de data.

CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO


Pues ahora el caso es que si deseamos ejecutar la evaluacin o las pruebas de errores, entonces lo podemos verificar desde la misma conexin. Aadiendo a este tema una consulta establecida por uno de mis alumnos a este tema es la siguiente, pues siendo esta una de las preguntas mas comunes en los diferentes usuarios quienes estn programando o aprendiendo a programar ?. Yo trabajo en una empresa X el cual debo realizar un sistema mediante una data ya existente y solo tengo una conexin de SQL en mis estacin de trabajo?. Primero crea dentro de tu programa inicial del Fox una conexin con el comando SQLCONNECT(). =SQLConnect("NOMBRE DE LA CONEXIN DEL ODBC) Luego, dentro de la base de datos del fox, que has generado, pues debes de crear vistas remotas a fin de poder realizar la conexin.

Ahora como vemos nuestra ventana lista despus de haberla creada debe ser tal como se muestra grficamente, para ello debemos dar clic al finalizar y listo para usarse. Pero en el caso de verificar el testeo de fallos es tal como se muestra la siguiente pantalla.

Pues estando dentro de tu base de datos del Foxpro, aades una vista remota para que nuestro trabajo sea completo, mas no vistas locales si es de uso cliente servidor o uso compartido, procediendo a crear vistas remotas. Cuando hayamos abierto la conexin de la vista remota debemos considerar la opcin de origen de conexin de datos, tal como se muestra en el grafico continuo.

En el clic donde el botn de PRUEBA DE FALLOS, debiendo de mostrar la ventana donde no hay problema de falla alguna.

Ya que si damos clic solo en conexiones no podemos ver las conexiones establecidas por las diferentes bases de datos creadas. Para luego dar clic en aceptar y ya tenemos nuestra conexin ODBC llamada Colombia. CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO


Al seleccionar la Base de datos llamada COLOMBIA ahora seleccionaremos las tablas contenidas dentro de dicha base de datos creada desde el SQL. CONSIDERANDO QUE TU SERVIDOR SE LLAME SERVERPROXY Y DESEAS CONECTARTE CON LA BASE DE DATOS DE SQL LLAMADO PADRON, YA QUE NO TENGO NINGUNA CONEXIN ODBC. Pues lo que debes hacer primero es crear la conexin para tu servidor llamado SERVERPROXY, lo puedes poner mediante una funcin y cada vez que necesites la conexin la mandas a llamar.
FUNCTION CONECTAR(PADRON) lcDSNLess3="driver=SQL Server;server=SERVERPROXY;Trusted_Connection=yes;Persist Security Info=False;database="+MiBasedeDatos THANDLE = SQLSTRINGCONNECT(lcDSNLess3) If THANDLE < 0 &&Si no Se logra Conectar =MessageBox("Ocurrio error ",0+64+0,"Error en conectar()") QUIT Else = SQLSETPROP(THANDLE, 'Asynchronous', .F.) Endif RETURN(THANDLE) de esta manera te conectas , si hay problemas te mandara un error . si todo te salio bien es utilizar la conexin para realizar una consulta. Local Handle,Cbusca Handle=Conectar("PADRON") Cbusca="Select * From clientes" =SQLEXEC(Handle,Cbusca,"CoRders") && Ejecuto la Consulta

En este caso ejemplo hemos escogido la tabla personal y procederemos a desarrollarlo. La pregunta establecida ahora por parte de uno de los alumnos de clase, hacia, es Cmo hacemos para poder saber que los registros de las tablas se puedan actualizar desde visual foxpro? Pues la respuesta es sencilla, luego de seleccionar todos los campos a escoger, entonces damos clic sobre la pestaa de criterios de actualizacin

Otra segunda manera e ejecutarla es la siguiente: Si te das cuenta en este ejemplo a continuacin ponemos la clave sa por defecto del SQL SERVER si es que en caso se haya instalado en forma determinada con clave de acceso en el server

Pues, cuando lo habremos inicialmente esta desactivada cada uno de los checks de los campos de las tablas, Pues si deseamos ingresar datos y actualizarlos debemos de ordenarlos dando click en las llaves primarias como yo deseara ordenarlo, sin necesidad de afectar a la tabla principal, as como clic en RESTABLECER CLAVES y ACTUALIZAR REGISTROS y ENVIAR ACTUALIZACIONES. El cual por ultimo lo grabamos con el nombre que queremos, en este caso lo hemos grabado como PERSONAL01. LALIBERACION EN EL ESPIRITU

PUBLIC PuConecion PuConecion= SQLCONNECT('ODBC','PADRON','sa') IF PuConecion<0 MESSAGEBOX("No se pudo establecer la conexin con Base de Datos",48,"Ventana de Control") RELEASE Thisform ENDIF y despus hacer la consulta sql loSqlC= "SELECT * FROM clientes " loEstadoSQL=sqlexec(PuConecion,loSqlC,"LoTablaLocal") IF loEstadoSQL <= 0 MESSAGEBOX("Error al abrir Clientes",48,"Ventana de Control",200) ENDIF Sele LoTablaLocal y ahi tenes la tabla para contar los registros Browse . *Otro procedimiento rpido de conectarme con la base de datos del SQL desde el fox, en un programa inicial , considerando que ya creamos la conexin es de esta manera a continuacin.

El cuerpo de ustedes es el templo deL Espritu Santo, que esta en ustedes, el cual tienen de DIOS, ustedes no se pertenecen asi mismos, por lo que fueron comprados por precio sin Falta glorifiquen a DIOS en el cuerpo de ustedes en conjunto. I CORINTIOS 6.19-20

=SQLConnect("ACA SE PONER EL NOMBRE DE LA CONEXIN DEL ODBC)

CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

PROBLEMAS DE FILTROS Y CONEXIONES EN SQL CON VISUAL FOXPRO Es por eso que antes de responder a tu consulta era necesario explayarme sobre la conexin que debes de haber hecho con la base de datos del SQL; puesto que en caso de que tu ya lo hayas establecido este proceso, entonces procedo a continuar con la siguiente parte. Cuando presentas la primera pantalla de tu form, muestra un mensaje de error que no existe conexin con la base de datos, pues es por que al parecer no hay ninguna conexin con la base de datos de tu servidor del SQL, es por eso te muestra dicho mensaje. Indicas que en el combo de locacin debe de mostrar el nombre de la localidad. Pues y lo que has hecho esta bien, solamente que debes de considerar lo siguiente:
en el evento del load del form activo de dicho screen mostrado, lo colocas tal como lo has descrito, pero trata de trabajar con cursores a fin de que se este cargando mucho la data de tu sistema y no se haga pesado. SELECT Departamento.departamento; FROM systeman!departamento; WHERE Departamento.locacion THISFORM.COMBO1.VALUE; INTO CURSOR LOCALIDAD

Luego, dentro de las propiedades del combo de locacion, en las opciones: de ROWSOURCE pones el nombre del cursor llamado LOCALIDAD y en ROWSOURCETYPE, seleccionas ALIAS. Ahora si deseas la parte de la consulta creada que lo has descrito, lo puedes colocar dentro del mismo combo en la opcion ROWSOURCE (PERO DATE CUENTA ESTA SIN PUNTO Y COMA, ESTA DIRECTO)
SELECT Departamento.departamento FROM systeman!departamento WHERE Departamento.locacion = THISFORM.COMBO1.VALUE INTO CURSOR LOCALIDAD

Y luego en la Opcin ROWSOURCETYPE seleccionas la opcin INSTRUCCIN SQL

ESPERO TE SIRVA DE AYUDA.

DIOS TE BENDIGA.
Atentamente. CESAR PEREDA TORRES.

CESAR PEREDA TORRES (LIMA PERU) Email gunepereda@gmail.com

Vous aimerez peut-être aussi