FoxPro/Visual FoxPro - Consulta sobre sql server y visual foxpro

 
Vista:

Consulta sobre sql server y visual foxpro

Publicado por Fredy Ayala (146 intervenciones) el 16/06/2008 17:26:22
Hola amigos programadores de visual foxpro!

Tengo un sistema que habia desarrollado con la base de datos y aplicacion visual fox, lo que pasa es que quiero prolongar la productividad del mismo y por lo tanto quiero cambiar la base de datos sql server y por esa razon necesito hacerles dos consultas:

1) La conexion la realizo a traves del ODBC de esta forma: STORE SQLCONNECT('MiConexion') to gnConexion. Funciona de maravillas y para ejecutar lo hago de la siguiente forma, por ejemplo: SQLEXEC(gnConexion, 'select * from Persona'). Lo que pasa que la programacion SQL quiero hacer en la base de datos y no desde la aplicacion y necesito saber como ejecutar un store procedure con la misma sentencia SQLEXEC.
2) Ademas necesito saber como capturar los errores del sql server en el visual foxpro.

Les agradezco la ayuda. Saludos desde Paraguay
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:Consulta sobre sql server y visual foxpro

Publicado por Plinio (7841 intervenciones) el 16/06/2008 19:41:37
En la misma ayuda de SQLEXEC te lo explica. Hay un ejemplo bastante completo ahi.
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:Consulta sobre sql server y visual foxpro

Publicado por Fredy Ayala (146 intervenciones) el 16/06/2008 20:12:03
Gracias por la 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

RE:Consulta sobre sql server y visual foxpro

Publicado por Plinio (7841 intervenciones) el 16/06/2008 21:01:30
Se me olvidaba. AERROR() para los errores de Sql server
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:Consulta sobre sql server y visual foxpro

Publicado por Fredy Ayala (146 intervenciones) el 16/06/2008 21:06:40
Los errores devueltos por el sql envia dentro de la matriz que recibe como parametro el aerror()?
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:Consulta sobre sql server y visual foxpro

Publicado por Plinio (7841 intervenciones) el 16/06/2008 21:30:08
Lee bien la ayuda. Lo que hace VFP es crear un arreglo con los ultimos errores generados.
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:Consulta sobre sql server y visual foxpro

Publicado por Fredy Ayala (146 intervenciones) el 16/06/2008 21:43:46
Sip, me di cuenta.
Gracias compañero
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:Consulta sobre sql server TE DOY EJEMPLO CLARO

Publicado por douglas (297 intervenciones) el 16/06/2008 23:00:40
HOLA QUE TAL ESTE ES UN EJEMPLO...,si instalaas en el servidor el slqserver con autenticacion de windows y registras los usuarios en la base de datos... aqui un ejemplo sin crear odbc
** DATOS
*!* servidor= SERVERADM
*!* base de datos =empresa_agua
*!* tabla=ema_liquidacion_agua


xconec = Sqlstringconnect("Driver={SQL Server};Server=SERVERADM;Database=empresa_agua;Uid=sa;Pwd=sa;")

&& syslanguages es una tabla que se encuentra contenida en la BD Master de SQL Server

xselect = "SELECT * from ema_liquidacion_agua" &&&& DESPUES DEL FORM INCLUI WHERE XX = VXX OK

xenvio = SQLExec(xconec,xselect,"Micursor") &&&MICURSOR LE PONES COMO TU QUIERAS Y LUEGO CAMBIA ABAJO FIJATE COMO ES LA DESCONEXION
&& Ya tendriamos un cursor de de la consulta realizada al servidor
&& donde lo podemos trabajar como una tabla nativa de fox
If xenvio > 0
Select Micursor
Else
=Messagebox("Error: en la conexion",0+16,"Advertencia")
Endif

xdesconec=SQLDisconnect(xconec)
If xdesconec > 0
=Messagebox("Desconexion realizada",0+64,"ok")
Endif

Espero te sirva

Douglas
Nicaragua
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:Consulta sobre sql server TE DOY EJEMPLO CLARO

Publicado por Fredy Ayala (146 intervenciones) el 16/06/2008 23:16:05
Gracias amigo!
Esa parte ya comprendi, lo que quiero es programar los select's dentro del servidor en store procedure del sql, entonces desde el cliente se llama a ejecutar el store procedure nada mas.

para que quede de esta forma:

SQLEXEC(miconexion, store_procedure)

a eso me refiero, debe poder hacerce. de esta forma solamente se programara la base de datos y el cliente solamente hara peticiones
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:Consulta sobre sql server Ahi tienes pues

Publicado por DOUGLAS (297 intervenciones) el 16/06/2008 23:30:27
para hacer las consultas haces lo siguiente:

sqlExec (coneccion,"select * from tabla")

el resultado se almacena en un cursor llamado sqlresult

y asi puedes enviar insert, update, delete, etc. como quieras atravez del sqlexec.

para ejecutar un proc almacenado en desde el cliente en el servidor

SQLEXEC(controlador,"EXEC " + procedimiento)

Saludes
douglas
Nicaragua
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:Consulta sobre sql server Ahi tienes pues

Publicado por Fredy Ayala (146 intervenciones) el 16/06/2008 23:35:24
Y los parametros como paso a los procedimientos?
Espero me disculpe la molestia, es que necesito saber

Saludos
Fredy
Paraguay
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:Consulta sobre sql server Ahi tienes pues

Publicado por Fredy Ayala (146 intervenciones) el 16/06/2008 23:46:00
Será que podrías enviarme un ejemplo completo de como ejecutar el procedimiento almacenado desde el cliente? No llego a conseguir ningun manual que lo tenga
Lo agradecere,

Fredy
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:Consulta sobre sql server Ahi tienes pues

Publicado por DOUGLAS (297 intervenciones) el 16/06/2008 23:55:57
te cuento para que te instruyas por te mismo te dejo un link que creo que de ahi saque algo en su momento....

http://support.microsoft.com/kb/247370/es

pruebalo y veras que esta claro asi yo no te invento ejemplo si no que puedes armar uno por ti mismo, validos para todos los fox hasta la version nuevo vfp90.

SAludes
Douglas
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:Consulta sobre sql server Ahi tienes pues

Publicado por Fredy Ayala (146 intervenciones) el 17/06/2008 00:04:14
Gracias amigo, muy claro esta en ese link. Te agradezco mucho y espero seguir trabajando contigo.

Saludos
Fredy
Paraguay
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:Consulta sobre sql server Ahi tienes pues

Publicado por Fredy Ayala (146 intervenciones) el 17/06/2008 00:07:23
Otra consulta, los errores que envia el sql los capturo con el AERROR()
o hay otra manera?
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:Consulta sobre sql server Ahi tienes pues

Publicado por DOUGLAS (297 intervenciones) el 17/06/2008 00:34:21
Depende el metodo de trabajos ya que podes hacerlo con

1 Usando Vistas Remotas
2 Usando Procedimientos Almacenados Remotos mediante el SQL Explícito.

1. El control de Errores del Servidor. No hay forma de controlar los errores que te devuelve el servidor o el Driver ODBC con sus crípticos y extraños mensajes que ponen nerviosos a los usuarios.

2. Usando Procedimientos Almacenados Remotos mediante el SQL Explícito.

Pero volviendo a tu pregunta lo correcto es que envies tu conexion o actualizacion pero utilza.

Try
tucodigo

CATCH TO oException
tu Exception

FINALLY

***cancelar

ENDTRY

Pero esto esta bien estructurado en la 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