Ayuda vfp9 + mysql

Hola expertos buenas noches.
Mi problema y pregunta es la siguiente.
En mi trabajo me pidieron desarrollar un sistema de control de empleados pero en vfp pero que se conecte con una base de datos en mysql, pero no tengo la más remota idea de como enlazar los dos alguien me puede ayudar o mandarme algún ejemplo de como hacer. Necesito agregar consultar... Etc y todo eso... Entiendo que tengo que crear un odbc pero no c como con mysql. Creo la tabla en mysql pero no se donde se guarda no se como llamarla, ¿estoy algo confundido alguien me podría ayudar...?

1 respuesta

Respuesta
1
Mmm ok mira lo primero y mega indispensable es saber que mysql y fox no son un mismo programa entonces necesitas generar una conexión por medio de dsn ... no te asustes es algo bien fácil te mando como hacerlo ...
x_Server = "nombre del servidor " && Esta es una direccion ip de tu servidor o bien un localhost.
x_UID = "Usuario" && Este es el usuario que tiene mysql registrado
x_PWD = "Pass"&& Este es el password de tu usuario.
x_DBaseName = "Es el nombre de tu base de datos"
lcStringCnxLocal = "DRIVER={MySQL ODBC 3.51 Driver};" + ;
            "SERVER=" + x_Server + ";" + ;
            "UID=" + x_UID + ";" + ;
            "PWD=" + x_PWD + ";" + ;
            "DATABASE=" + x_DBaseName + ";" + ;
            "OPTIONS=131329;"
            SQLSETPROP(0,"DispLogin" , 3 )
            xcontrol = SQLSTRINGCONNECT(lcStringCnxLocal)
Bueno entonces que has generado tu conexión tienes una variable la cual debe de ser publica la cual es xControl en donde esta la conexión
Insert
My_Insert = "Insert into tabla(campo1, campo2) values (val1,val2)"
En pocas palabras el insert, update, delete existen en mysql en donde todo es exactamente igual... lo único que debes de hacer es que deben de ser cadenas de string como el My_Insert en donde todo es un string ya que eso lo tienes que mandar por la conexión, esto no importa que los datos no sean del tipo de dato string en tu base de datos, ya que mysql los interpretara correctamente ...
Observación : ya que estas iniciando en esto, antes de cada val1, val2 etc deberás ponerle comillas simples después aprenderás por que es que deben de llevarlas...
Y lo único que debes de hacer es esto
Insert
sqlexec(xControl,My_Insert)
Update
sqlexec(xControl,My_Update)
Delete
sqlexec(xControl,My_Delete)
Select
sqlexec(xControl,My_Select,"Cursor_Que_Guarda_Lo_Que_Retorna_MySQL")
Bueno el sqlexec necesita por lo mínimo 2 parámetros que es la conexión del dsn el cual es el xControl como te indicaba anteriormente, después lo que quieres hacer es decir una variable que tenga tu actividad que puede ser delete, update, select entre otras. Si my sql te va a devolver un valor o un cursor tienes que indicárselo al sqlexec con un tercer parámetro en llaves, esto indica que lo que te retorna te lo va a almacenar en el nombre que le pusiste en el tercer parámetros, es muy común que lo que te devuelve es un cursor.
Por ultimo sqlexec te devuelve por default un valor, el cual indica si se pudo conectar con tu base de datos o no, esto se hace con un numero si el valor que te devuelve es mayor a 0 indica que realizo lo que le solicitaste con tu string de lo contrario te retorna un valor negativo que te indica que no lo pudo hacer ...
Ok Gracias experto, ahora, la cosa es la siguiente, yo necesito indispensablemente que los datos sean únicos que no se repitan, ¿cómo hago la igualdad? Decir que si ya existe en mi tabla por decir código 001, ¿y quiero agregarlo de nuevo como decirle que ya existe ya? Y dos creo con el wampmanage un localhost para trabajar y la tabla, ¿a la hora de instalar el programa terminado necesitare instalar este programa aya? ¿Yo creo la tabla y todo en mysql pero no se donde se guarda...?
Mmm mira pues en mysql cuando generas una tabla, te indica si quieres que los campos sean únicos, es decir habilitas el check que dice unique entonces esto te retornara -1 si el valor que estas tratando de almancenar ya existe en mysql ...
Se guarda en un archivo de mysql que esta en archivos de programa, La carpeta donde lo guardaste y la carpeta se llama data

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas