FoxPro/Visual FoxPro - SQL y VFp9

 
Vista:
sin imagen de perfil

SQL y VFp9

Publicado por victor perez (278 intervenciones) el 20/09/2010 19:45:03
Hola amigos,

Estoy adentrando al mundo de SQL (MySQL).

Sigo algo confundido porque el estudio de MySQL esta interesante pero no se como lo aplico a VFP9.

Por ejemplo, la sentencia SQL para hacer un Update es:

UPDATE Target

SET Column_Name1 = eExpression1 [, Column_Name2 = eExpression2 ...]

[FROM [FORCE] Table_List_Item [[, ...] | [JOIN [ Table_List_Item]]]

WHERE FilterCondition1 [AND | OR FilterCondition2 ...]


Cuando estoy en VFP9 solo debo colocar este comando y abrir (conectarme) la Base de datos SQL ?

He visto por alli que escriben:

SQLEXEC(con,ComandoSQL)

Estoy enrredado. Que es ese "con"...será la conexion para abrir la conexion a base en particular SQL?

Si es asi, entonces cada vez que ejecute un comando SQL en VFP9 debo llamarlo mediante la esta sintaxis de SQLEXEC ?

Otra cosa, en SQL las tablas se abren SHARED ? o EXCL? o Como especifico esto?

En mi programa, RED, la mayoria de las BASES las abro Shared, excepto cuando debo hacer actualizaciones para lo cual debe verificar primero si las bases estan disponibles para ser abiertas en modo EXCL.

Saludos y espero sus comentarios.

Es interesante esto del SQL

Victor
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:SQL y VFp9

Publicado por es_binario (757 intervenciones) el 20/09/2010 20:07:29
Las actualizaciones o updates o inserts las vas a hacer segun lo haga el mysql

y la forma en que las llamas es con sqlexec, en realidad en foxpro solo usas 3 comandos

sqlconect
sqldesconect
y el poderoso sqlexect

es todo nada mas no vas a usar alltrim ni isnull, ni nada de eso tienes que usar unicamente instrucciones mysql, por ejemplo.

ahora en un motor mysql siempre la informacion esta compartida no tienes que compartir nada por que siempre se accede en forma remota, pero si tienes que crear un usuario en mysqladmin por cada maquina que se conecte y en cada maquina tener un exe con su respectivo usuario..

el usuario se configura a la hora de conectar.

bueno en el caso de montar una red con mysql, en un servidor se instala el motor de mysql y se abre el puerto en firewall de windows y del antivirus en caso de que sean internet security el puerto es 3306 por defecto pero puede ser el que tu le indiques.

en las maquinas cliente nada mas intalas el odbc de mysql y nada mas

ahora si digamos que tu te conectas en la maquina que tiene el mysql server tienes que ponerle local host, pero solo se va a conectar si el servidor tambien tiene el odbc mysql

en una maquina remota vas a cambiar el localhost por la ip de la maquina que tenga el servidor y nada mas no necesitas configurar nada mas la odbc se encarga de hacer todo
tampoco es necesario que en los clientes abran puertos solo en el servidor.

yo les recomiendo usar cableado utp y 100mb de trasmision para un buen resultado, y solo hacer los requeriemientos de datos necesarios no traerlos todos

tienen que estudiar mysql es otro lenguaje diferente incluso permite sumar y restar raiz cuadra seno coseno etc todo

select 1300 * 2344

esta es una cadena valida en mysql, pero tienen que aprender el lenguje tambien tiene sus propios comandos de redondeo y se subrtraccion muy similares a foxpro pero con su propia sintasys.

saludos.
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
sin imagen de perfil

RE:SQL y VFp9

Publicado por victor perez (278 intervenciones) el 20/09/2010 20:15:03
Graicas Es_binario,

Entonces, no necesito aprender nada de eso de CursorAdapter, etc? Eso esta muy enrredado para mis conocimientos.

Yo uso muchos cursores...y las pantallas...algunos reportes...

Los reportes y pantallas son como en VFP?o tengo que cambiarlos ?

Si puedes, y tienes tiempo, me podrias dar un ejemplo bien sencillo de un form que capte datos, y los almacenes...usando SQL ?

Yo vi tu ejemplo pero es de busqueda y no lo entiendo del todo bien...

tengo que empezar por lo mas elemental.

Tambien tengo muchas Tablas de datos RELACIONALES que se conectan una con otras por me dio de un campo comun.

Comente que uso tablas libres...Como debo hacer la migracion para ir haciendo pruebas.

Mi base de datos de pacientes tiene 25,000 registros y a la hora de hacer las busquedas es un poquito lento desde las terminal...es rapida en la maquina que funciona como servidor.

En SQL entonces designo la maquina mia o la de mi secretaria como SERVIDOR y TERMINAL ?

Saludos y espero tus comentarios...Son muchas preguntas...perdona.

Victor
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:SQL y VFp9

Publicado por Pablo (Argentina) (433 intervenciones) el 20/09/2010 23:07:49
Hola Victor, mira el articulo que te paso en este link y sacara tus dudas del "con" sino busca en este mismo foro que hay articulos sobre como conectarse mediante SQL a tus bases de datos en VFP

http://www.portalfox.com/index.php?name=News&file=article&sid=2717

Si quieres migrar tus DBF a MySQL hay un programa que lo puedes descargar desde internet del stio taringa.net o buscalo en google escribe DBF to MySQL es de la firma intelligent converters, yo no lo probe mucho pero las DBF que converti me funcionaron bien en mySQL, no se perdio ningun dato.

Suerte!!!!!

Pablo - Argentina
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
sin imagen de perfil

RE:SQL y VFp9

Publicado por victor perez (278 intervenciones) el 20/09/2010 23:14:10
Hola Pablo,

Gracias por la informacion.

Saludos
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
sin imagen de perfil

RE:SQL y VFp9

Publicado por victor perez (278 intervenciones) el 20/09/2010 23:39:55
Hola,

Ya visite el sitio que me indicaste pero sigo igual de perdido.

Aclaremos mi situacion. Yo tengo una computadora donde programo todo lo referente a VFP y SQL. Es decir, alli ella funciona como mi servidor (localhost)

Cuando termine el programa y asi es como funciona actualmente bajo VFP, el servidor (donde tengo als BASES, los REPORTES, etc) està en la computadora de mi secretaria (lporque es la que constantemente està encendida, es mas rapida, tiene menos archivos, etc).

Cuando finalice de programar en SQL y migrar (que me tomara un chorro de tiempo). La computadora de mi secre harà de servidor y cliente a la vez y la mia (por tener ya instalado el msql y ODBC) actuarà como Cliente (aunque tambien puedo hacerlo de servidor cuando lo necesite por progrmacion.

Viendo este panorama, que es lo que debo instalar en la computadora de mi secretaria (todo el mysql como server y cliente + el ODBC?

Donde ejecuto el mysql para dar los permisos a las bases de datos y los accesos a los otros usuarios futuros?

O ustedes sugieren que mejor deje mi computadora como Servidor / Cliente y la de la Secretaria como Cliente solamente.

Si este fuera el caso, que debo instalar en la computadora de la SEcretaria? EL odbc ? y como accedo para dar permisos , etc. de tal manera que ellas puedan conectarse.

Estoy super enrredado y no se por donde seguir.

Saludos,
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:SQL y VFp9

Publicado por es_binario (757 intervenciones) el 21/09/2010 02:46:05
No debes tener mas de un motor mysql instalado en mas de un equipo en una red es decir debes elegir la maquina con mas ram y en esa poner el mysql 5.x luego en esa y en las demas poner unicamente la odbc, no es necesario que programes en la que tiene el motor mysq. puedes facimente acceder de forma remota con el ip de la maquina

ejemplo:

cuando tu abres el mysql administrado en la pantalla de bienvenida te aparece server host en el que generalmente dice localhost
pero puedes cambiarlo por la ip de la maquina que lo tiene y asi puedes hacer modifiaciones o crear tablas

yo personalmente no creo relaciones en las tablas, pero esto no significa que no las haya lo hago por que si creo relaciones debo de mantener la integridad de los datos, asi que todas esas relaciones yo las manejo a travez de codigo sql y asi no tengo ningun problema con la integridad de datos a la hora de hacer registra (esta practica significa mas trabajo en el codigo pero mas rapidez y seguridad en mis datos)

por otra parte acuerdate que no debes trabajar con root, tienes que crear un usuario con privilegios sobre las bases de datos que tu decidad y listo.

y es cierto no hagan un programa de migracion. Como bien dice Pablo podemos migrar usando programas de terceros como dbftomysq ver 3.x, lo que si debemos despues de migrar es cambiar las tablas a innodb y tambien crear sus respectivos indices el hecho de que yo en muchos casos no haga relacion no significa que no deba crear las gerarquias de indices ya que el crear un indice me garantiza velocidad y seguridad.

ahorita mismo tengo que hacer una pequeña bitacora asi que voy a subir de nuevo el codigo y un ejemplo en video de la mecanica, pero como comente antes a ti y a todos, deben estudiar mysq y luego si quieren usar alltrim o comoandos foxpro los usan en un cursor regresado por la intruccion sqlexect

sqlexect (conexion, Sentencia sql, cursor que contendra el resultado en caso de que se espere uno)

saludos.
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
sin imagen de perfil

RE:SQL y VFp9

Publicado por Victor Perez (278 intervenciones) el 21/09/2010 03:33:35
Hola,

Te entiendo mas o menos. Esto es un mundo para mi. Preguntame mejor sobre enfermedades, ja ja ja.

Mira, no he podido migrar las bases de datos porque los programas o no me funcionan en Windows 7 o No son gratis y apenas estoy haciendo pruebas.

No estoy usando mucho del MySQLAdmin, estoy usando todo desde la ventana de comandos del DOS.

Mi hijo me dijo de un programa que se llama Xampp o algo asi que integra el MySql Admi junto con otras cositas. Ya lo he visto y me parece bueno pero me gusta mas el lenguage desde su Raiz, para poder entenderlo mejor.

No te entendí el por que no usar "root" como usuario. He practicado creando algunos para Bases de datos de ejemplo. Pero no he visto donde poner los privilegios???

Es decir, me imagino que en cada computador debo crear una cuenta de usuario para el servidor de modo tal que ellos puedan acceder a las Bases de Datos, no es asi?

Mira, por que no hacemos algo. Estoy leyendo los dos libros que me recomendaron pero en ellos no he visto que hablen sobre la seguridad al momento de instalar el sistema. Es decir, no me dicen Que es lo que debo hacer solo me dicen cree un usuario con tal y tal caracteristicas (username password) con privilegios para la base de Datos X...pero no me dicen mas nada.

Mi Windows Live Id es "[email protected]" me gustaria que me añadas y asi podemos conversar en linea...si se puede, pues.

Victor,
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:SQL y VFp9

Publicado por xx (378 intervenciones) el 21/09/2010 15:56:05
Disculpen por la irrupción:

El usuario root es el que tiene mas privilegios o tiene la potestad de hacer la mayoria de las cosas constructivas/destructivas por eso se recomienda que las conexiones desde terminales se hagan con otro usuario, pero para configurar mysql debes usar indefectiblemente al root mira yo no se mucho sobre esto pero he hecho varias instalaciones de mysql y con todas me han causado roncha los permisos tales que la unica forma viable que enconte de hacerlo es editando directamente las tablas desde la linea de comandos o mysql>
para hacerlo debes saber que existen tres tablas referentes a la seguridad:

db,host,user estas tres tablas la debes editar desde la linea de comandos para saber que campos tiene cada una de estas tipea:
use mysql;
show tables;
describe nombretabla;
create database;

y luego le das el insert apropiado para cada una de estas
insert into nombretabla (campo,...) values (valor,...);

tambien existen los comandos de alto nivel como para dar privilegios hay mucha ayuda en la red
GRANT ALL ON
CREATE USER

etc.

y administradores de mysql existen un monton yo tengo uno llamado dreamcode pero no son necesarios.

Saludos
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
sin imagen de perfil

RE:SQL y VFp9

Publicado por victor perez (278 intervenciones) el 22/09/2010 07:34:32
Gracias por tu opinion.

Si, ya he visto varios administradores de SQL. He probado con PhpAdmin y con el propio que baje de MySQL (Administrador viejo porque el nuevo es un dolor de cabeza entenderlo).

Bueno el usuario Root sencillamente lo puedes dejar pero puedes cambiarle el nombre de usuario y que no se llame root. Asi de sencillo o puedo crear un usuario "X" al que le doy la lacondicion de GRANT Option o algo asi y tiene los mismos privilegios que Root. Luego borro Root.

Creo que a lo que se referian en el post anterior era la facilidad con la que los programadores pueden saber que el usuario root es comun en los sistemas y con el password poder entrar.. Ensayo y error. Pero si por ejemplo tienen que adivinar el usuario y el password la cosa se pone mas dificil.

Saludos
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