>Hola,
>
>Tengo el siguiente problema, estoy utilizando instrucciones de paso
>de sql nativo al motor de base de datos db2/400, mediante instrucciones SqlConnect(), SqlPrepare() y SqlExec().
>
>Mi pregunta es :
>
>Cómo puedo ejecutar procedimientos remotos via ODBC y con qué
>comando para el db2/400. ya que he utilizado la instruccion sqlexec
>y me devuelve codigo de error -1, la instruccion es la siguiente:
>
> =Sqlexec(nHandle,'call pgm(libreria/programa) parm(p1,p2)')
>Quisiera saber si con el conjunto de instrucciones de ese estilo que tiene visual fox pro lo puedo hacer o no.
>
>
>Ademas he utilizado la instruccion CursorSetProp () para colocar como actualizable un cursor de tabla remota, pero me sale un error relacionado a la Propiedad tables, siendo que yo la fijo de la siguiente manera :
>
> =CursorSetProp('Tables',cNombretabla)
>
>pero no logro que el cursor actualice la información base.
>
>Gracias.
En tu primer pregunta, la respuesta es que el string que pasas al servidor debe ser una instruccion valida para el mismo. En otras palabras, si es posible ejecutar la misma sentencia SQL desde el servidor usando utilerias nativas, entonces tu cadena debe ser ejecutable desde VFP tambien. Lo unico que tienes que asegurar es que el string este perfectamente construido, dependiendo de la sintaxis que acepta el servidor de base de datos. Por ejemplo, si los parametros que pasas (p1, p2) estan en variables de VFP entonces construyes el string como sigue:
cSQL = "Call Pgm(libreria) parm(" + p1 + "," + p2 + ")"
Result=SqlExec( nHandle, cSQL)
Y esto aplica con cualquier servidor que se accede mediante ODBC.
En la segunda pregunta no tengo mucho que decir, mas que notar que la causa mas comun es problema de permisos del usuario con el servidor.
Précédent
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement