erro con SQL al correr ejecutable

131 views
Skip to first unread message

sprdtd

unread,
Jul 9, 2012, 6:49:52 PM7/9/12
to publice...@googlegroups.com
Hola grupo, necesito de la sapiensa grupal para resolver  este inconveniente:
vfp 8.0
sql server 2008
Cree una aplicacion con odbc para conectarme a sql.   En el entorno de trabajo de VFP corre perecto, hago consultas, creo cursores, actualizo, etc y todo anda bien. El problema radica cuando creo el ejecutable. En el momento que hago cualquer acción  busca las bases de datos nativas de VFP y no las busca en sql.  No se que hacer he buscado por muchos lados y no encuentro solución. Por favor podrían ayudarme, cualqier sugerencia importante para mi.. Gracias.

Saludos desde Flandes - Tolima - Colombia

Juan C. Rivera Rosel

unread,
Jul 9, 2012, 6:52:43 PM7/9/12
to foxseros
crear nuevamente el proyecto, y al momento de compilar asegurate de direccionarlo bien a las librerias.

Ing. Juan Carlos Rivera Rosel

 

 




Date: Mon, 9 Jul 2012 15:49:52 -0700
From: alex.loz...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] erro con SQL al correr ejecutable

Lewis López

unread,
Jul 9, 2012, 7:03:55 PM7/9/12
to publice...@googlegroups.com
Esto sucede cuando usas conexiones con el entorno de datos, en en proyecto sin compilar funciona perfecto pero cuando compilas no, porque 
vfp no guarda la conexión al servidor luego de compilado el proyecto.

Para solucionar esto al iniciar tu aplicación debes eliminar tu conexión y volverla a establecer para que tenga o encuentre una  activa.

Revisa estos comandos en la ayuda ve vfp.

DELETE CONNECTION
CREATE CONNECTION 

Espero sea ese tu problema y la solusión.

Saludos.
SOLUCIONES PC & REDES
Desarrollo de Software a la medida
Diseño de planos Arquitectónicos
Venta, reparación y mantenimiento de Computadores.
Lewis Oswaldo López Gómez .
Teg. En obras Civiles.
Analista y Programador de sistemas.
Cel: 311 665 0342
Correo:
Skipe 
asaie2010
Córdoba-Colombia




Date: Mon, 9 Jul 2012 15:49:52 -0700
From: alex.loz...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] erro con SQL al correr ejecutable

Luis Maria Guayan

unread,
Jul 9, 2012, 7:56:57 PM7/9/12
to publice...@googlegroups.com
Seguramente guardaste tus datos de conexión en la misma base se datos
donde están tus tablas y obviamente no está incluida en el EXE. Puedes
crear otra DBC con solo la conexión y las vistas y esa si incluirla en
el EXE o deberias conectarte con las funciones SQLCONNECT y/o
SQLSTRINGCONNECT.


--

*Luis María Guayán
Tucumán, Argentina
_________________________
**http://www.PortalFox.com <http://www.portalfox.com/>*
*Nada corre como un zorro
_________________________*

sprdtd

unread,
Jul 10, 2012, 4:45:53 PM7/10/12
to publice...@googlegroups.com
Juan, gracias por responder, el asunto no es de librerias pues el aplicativo corre narmalmente, el problema aparece al intentar extraer datos, pues inmediatamnete busca la bd en el directorio de vfp o en el que esté por defecto


El lunes, 9 de julio de 2012 17:52:43 UTC-5, jch escribió:
crear nuevamente el proyecto, y al momento de compilar asegurate de direccionarlo bien a las librerias.

Ing. Juan Carlos Rivera Rosel

 

 




Date: Mon, 9 Jul 2012 15:49:52 -0700
From: alex.loz...@gmail.com

Alejandro P

unread,
Jul 10, 2012, 4:49:38 PM7/10/12
to publice...@googlegroups.com
porque no intentas quitar tus conexiones ODBC por conexiones por cadena?

Son mas faciles de controlar y si las anexas a un xml o a una tabla dbf para manejarlas es mejor, cuando empece mi programa hice casi todo por ODBC pero con el tiempo descubri que es mas rentable usar conexion por cadena...


Saludos!

sprdtd

unread,
Jul 10, 2012, 4:52:52 PM7/10/12
to publice...@googlegroups.com
Luis Maria, gracias por tu respuesta. Trataré de interpretar la solucion:  LAs tablas estan en el servidor sql (en un computador aparte), los datos de conexion estan en un archivo de procedimientos vinculado al proyecto, alli hago la conexión y testeo que se haya establecido, hago los diferenets select y uodates, etc, de este tipo:

function conectar_base_datos(nombre_servidor,nombre_base_datos,nombre_usuario,clave_usuario)
conectar="Driver={SQL Server};";
+"Server="+nombre_servidor+";";
+"Database="+nombre_base_datos+";";
+"uid="+nombre_usuario+";"+"pwd="+clave_usuario+"; "
nu_conexion=sqlstringconnect(conectar)

if nu_conexion<=0
messagebox('ESTE USUARIO NO TIENE CONEXION A LA BASE DE DATOS',64,'AVISO')
return .f.
else
_numero_conexion=nu_conexion
return .t.
endif
endfunc


**** INSERTA REGISTRO EN LA BASE DE DATOS RECIBIENDO LA TABLA, CADENA DE CAMPOS Y CADENA DE VALORES ****
function inserta_registro(tabla,campos,valores)

sql_insert='insert into '+tabla+' ('+campos+' ) '+'values ( '+valores+' ) '
if sqlexec(_numero_conexion,sql_insert)=1
=sqlcommit(_numero_conexion)
else
=sqlrollback(_numero_conexion)
endif
endfunc

El problema se presenta entonces en el ejecutable, pues al parecer  no tiene en cuenta el odbc para conectarse y busca la bd en el directorio nativo.

Ojalá haya sabido explicarme. Gracias

sprdtd

unread,
Jul 10, 2012, 6:28:41 PM7/10/12
to publice...@googlegroups.com
Disculpa mi ignorancia, por Conexion por cadena, te refieres al sqlstringconnect?

me podrias indicar donde encuentro ejemplos sobre este tema, parece interesante y tal vez pueda solucionar mi problema.  

 martes, 10 de julio de 2012 15:49:38 UTC-5, Alebrije escribió:
porque no intentas quitar tus conexiones ODBC por conexiones por cadena?

Son mas faciles de controlar y si las anexas a un xml o a una tabla dbf para manejarlas es mejor, cuando empece mi programa hice casi todo por ODBC pero con el tiempo descubri que es mas rentable usar conexion por cadena...


Saludos!


Luis Mata

unread,
Jul 10, 2012, 6:35:53 PM7/10/12
to publice...@googlegroups.com
pon el error que te sale, quizás no estés instalando el Driver SQL en los clientes. Pon el código con el que te conectas.

sprdtd

unread,
Jul 10, 2012, 6:57:30 PM7/10/12
to publice...@googlegroups.com
Luis el error que sale es que no encuentra la base de datos pero no la encuentra en el directorio nativo, desde luego que no la va encontrar porque esta en otro equipo que maneja el servidor sql.  Te cuento que el driver SQL esta instalado en cada cliente y se accede normalmente  porque existe otra aplicacion desarrollada en vb que se conecta perfectamente.

 

El martes, 10 de julio de 2012 17:35:53 UTC-5, Luis Mata escribió:
pon el error que te sale, quizás no estés instalando el Driver SQL en los clientes. Pon el código con el que te conectas.
Sent: Tuesday, July 10, 2012 5:28 PM

Subject: Re: [vfp] erro con SQL al correr ejecutable

Luis Mata

unread,
Jul 10, 2012, 7:03:45 PM7/10/12
to publice...@googlegroups.com
Pero cuando te conectas a sql lo haces hacia un puerto, no a una carpeta..
 
Conectar:
 
cscom = SQLStringConnect("Driver={SQL Server native client 10.0};Server=NOMBRE_SERVER_O_IP;Database=NOM_BD;Uid=userall;Pwd=0305/*-+2qwe; MARS_Connection =yes;")
 
O
 
cscom = SQLStringConnect("Driver={SQL Server};Server=NOMBRE_SERVER_O_IP;Database=NOM_BD;Uid=userall;Pwd=0305/*-+2qwe;")
 
- Ahora, también debes de ver que el servidor este aceptando conexiones remotas:
 
image
Mira aquí.
- También debes de chequear el Firewall de windows prueba desactivándola, pero claro después la activas y la configuras para que acepte conexiones SQL.
 
Como vez aquí te pide que fuerces un poco mas tus conocimientos en otras cosas, pero después es fácil.
image[1].png

sprdtd

unread,
Jul 11, 2012, 12:17:58 PM7/11/12
to publice...@googlegroups.com
Hola grupo.  Acabo de solucionar el problema, era todo cuestion de observación aqui les cuento lo que sucedió:

El problema radicaba en que cuando generaba el ejecutable me reportaba unos errores que pensé que eran pasajeros, pues se relacionaban con unos íconos que estaba asociados al proyecto pero que no los encontraba y el otro error era de una mala pasada de parámetros (en cadena) a una instrucción en sql.  Este último error no me dejaba compilar el proyecto y por tanto no me generaba el ejecutable.   Como tenía un ejecutable viejo, pues este traía la información de las tablas nativas  y por eso no me buscaba los datos en sql. 
Resolví el problema cuando arreglé la cadena de carácteres, me dejó compilar el ejecutable y el problema se arregló.

Gracias grupo por sus multiples puntos de vista, fueron muy oportunos y bastante profundos.
Reply all
Reply to author
Forward
0 new messages