FoxPro/Visual FoxPro - Conexión automática de Vfp9 a MySql

 
Vista:
sin imagen de perfil
Val: 69
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Conexión automática de Vfp9 a MySql

Publicado por Jesus (121 intervenciones) el 17/09/2014 23:53:04
Estimados amigos Estoy trabajando Vfp9 con MySql y para hacer la Conexión entre ambas uso ODBC, pero lo malo q cada Computadora q se desea instalar un sistema tengo q hacer siempre lo siguiente manualmente ir a:

Panel de Control
Herramientas administrativas
Orígenes de datos ODBC
Agregaba un Controlador en mi caso MySql
Lo poner el Data Source Name
El TC/IP Server
User
Passsword
Database

Mi pregunta es hay alguna forma de hacer esta misma conexión pero automáticamente q cuando el mismo usuario ejecute el sistema este ejecutable internamente configure y conecte el sistema con MySql como lo hago manual tal como ya les explique

De antemano mil Gracias y espero su pronta ayuda
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

Conexión automática de Vfp9 a MySql

Publicado por Saul (728 intervenciones) el 18/09/2014 00:04:54
Prueba con esto Amigo, yo lo que hago es hacer una arhivo .INI y poner los parametros, pero es cuestion
que tu lo decidas.

Suerte

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
SERVERMYSQL	= "127.0.01"   &&Es el IP de tu maquina local
	USUARIO 	= "root"
	CLAVE   	        = "saaaa"
	BD 			= "TuBaseDatos"
 
	lcStringCnxLocal = "DRIVER={MySQL ODBC 3.51 Driver};" + ;
	                   "SERVER="+SERVERMYSQL+";" + ;
	                   "UID="+USUARIO+";" + ;
	                   "PWD="+CLAVE+";" + ;
	                   "DATABASE="+BD+";" + ;
	                   "OPTIONS='';"
 
 
	SQLSETPROP(0,"DispLogin" , 3 )
 
	CnxSde = SQLSTRINGCONNECT(lcStringCnxLocal)
 
IF CnxSde < 0
	 AERROR(laErr)
 	 MESSAGEBOX("No se pudo conectar a mySQL. Error: " + CHR(13) + laErr[2])
 
 	 CLEAR ALL
 	 CLOSE ALL
 	 CANCEL
 	 QUIT
ENDIF
 
xcodigoempresa = '01'
SET ENGINEBEHAVIOR 70    &&Sirve para el SUM() de SELECT SQL
 
        *Se Genera el Script para MYSQL
	lcSQLcommand = ""
	 TEXT TO lcSQLcommand NOSHOW
		SELECT * FROM TuTabla a
		WHERE a.empresa = ?xcodigoempresa;
	ENDTEXT
 
	cmd = SQLEXEC(CnxSde,lcSQLcommand,"TuCursor")
 
****************FIN ****************************************
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
Val: 69
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Conexión automática de Vfp9 a MySql

Publicado por Jesus (121 intervenciones) el 18/09/2014 16:31:11
Estimado amigo yo tengo este codigo q uso dime en donde o como podria añadir tu procedimiento q usas por favor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
*----------- Variables De Sistema --------------*
PUBLIC CnxSge, Acc_Per, Xniveles
 
*** Declaracion de los SETS
*******************************
SET BRSTATUS OFF
SET CENTURY  ON
SET EXCLUSIVE OFF
SET ECHO      OFF
SET TALK OFF
*------------------------------*
 
DO Conx_Sge
 
Application.Visible=.F.
 
Acc_Sge=" UGEL Nº03 - ÁREA DE ESCALAFÓN - A.G.A. "
If Activo1(Acc_Sge)
   messagebox('No Puede Habrir Dos Seciones Simultaneamente',16,Ventana)
   Close all
   Quit
else
   Do Form Acc_Sge
   Read Event
   ON ERROR  && Restaura el controlador de errores del sistema.
endif
 
*---------------------------------------------------------------------------------------------------*
Function Activo1
lparameters WS_LOC
LOCAL lResult
DECLARE INTEGER FindWindow in WIN32API STRING cNULL, STRING cWinName
actventana=FindWindow(0, alltrim(WS_LOC))
IF (actventana # 0)   && Si está activo
   return .t.
ELSE
   return .f.
ENDIF
 
*---------------------------------------------------------------------------------------------------*
PROCEDURE MiError1
PARAMETER Merror, mess, mess1, mprog, mlineno,linw,colw
Define wind Werror1 from linw,colw to linw+9,colw+90 title '      Mensaje de Error              "Presiona la Tecla [Enter] para Continuar"';
               FONT 'Arial',8
Activ wind Werror1
CLEAR
@0,1 say '  Número de error  : ' 
@1,1 say '  Mensaje de error : ' 
@2,1 say '  Línea de código   : '
@3,1 say '  Programa             :'
@4,1 say '  Número de línea   : ' 
set color to rgb(255,0,0)
@0,21 say LTRIM(STR(merror))
@1,21 say mess
@2,21 say mess1
@3,21 say mprog
@4,21 say LTRIM(STR(mlineno))
set color to rgb(0,0,255)
@6,20 say'Copie  el mensaje de  error de  las Primeras  5 Lineas '
@7,20 say'y comuniquese con Area de Informática de su Institución'
set color to
wait ''
Release wind  Werror1
 
Procedure Conx_Sge
STORE SQLCONNECT('SIGAE2014','root','pbase2014') TO CnxSge   
 
IF CnxSge <= 0
   = MESSAGEBOX('NO SE PUEDE HACER LA CONEXIÓN', 16, 'SQL Connect Error')
ELSE
   = SQLEXEC(CnxSge,"SELECT * FROM Acc_Per","Acc_Per")
ENDIF


Nota:
Acc_Per es la tabla q extraigo del Servidor y me permite Validar a los usuario al sistema.
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
Val: 69
Ha aumentado 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Conexión automática de Vfp9 a MySql

Publicado por Jesus (121 intervenciones) el 24/09/2014 17:21:51
Estimado Saul
Modifique tu codigo a mi necesidad y quedo asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Procedure Conx_Sge
  SERVERMYSQL = "10.4.1.7"           Si aki le pongo el nombre Localhost si carga el sistema en el mismo servidor
  USUARIO = "root"
  CLAVE = "e2014"
  BD = "SIGAE2014"
 
lcStringCnxLocal = "DRIVER={MySQL ODBC 5.3 Unicode Driver};" + ;
  "SERVER="+SERVERMYSQL+";" + ;
  "UID="+USUARIO+";" + ;
  "PWD="+CLAVE+";" + ;
  "DATABASE="+BD+";" + ;
  "OPTIONS='';"
 
  SQLSETPROP(0,"DispLogin" , 3 )
  CnxSge = SQLSTRINGCONNECT(lcStringCnxLocal)
 
  IF CnxSge<= 0
     AERROR(laErr)
     MESSAGEBOX("No se pudo conectar a mySQL. Error: " + CHR(13) + laErr[2])
     CLEAR ALL
     CLOSE ALL
     CANCEL
     QUIT
  ELSE
	 = SQLEXEC(CnxSge,"SELECT * FROM Acc_Per","Acc_Per")
  ENDIF

pero cuando lo ejecuto me sal este error: NO SE PUEDE CONECTAR A MySql ERROR DE CONECTIVIDAD: MySql odbc 5.3.(w) DRIVER HOST 'SEVIDOR-PC' IS NOT ALLOWED TO CONNECT TO THIS MySql SERVER.

Adicionalmente te comento:
- La Computadora q hace de servidor de Base de Datos es una i5 de 4gb de Ram, con Windows 7 32 Bits
- Uso el MySql 5.7 como Servidor
- Uso el MySQL Workbench 6.1 como Administrador de consola
- Ya abri el puerto 3306 en Windows 7
- En el KasPersky 2014 tambien ya esta abierto este puerto 3306

Ffinalmente lo q he notado q cuando EN:
SERVERMYSQL = "10.4.1.7" Si aki le pongo el nombre Localhost si carga el sistema en el mismo servidor pero desde otras Pcs me sale error de conexion q hago amigo

Espero tu pronta ayuda
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