AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / Conectores Nativos/Accesos Nativos / Conector Nativo Sybase
  • Presentación
  • ¿Cómo proceder?
  • Etapas
  • Observaciones
  • Ejemplo
  • 1. Declaración de la fuente de datos
  • 2. Declarando las variables utilizadas por la Procedure
  • 3. Ejecutando el Procedure almacenado y recuperando el resultado
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Conector Nativo Sybase: El valor de salida de un Procedure almacenado en el servidor
Conectores NativosDisponible solo con este tipo de conexión
Presentación
El Native Sybase Connector (también llamado Native Sybase Access) está acostumbrado a:
  • especificar los valores de entrada durante la llamada a un Procedure almacenado.
  • recuperar los valores de salida después de una llamada a un Procedure almacenado.
Esta función está disponible en ASE 12.5.
¿Cómo proceder?

Etapas

Para especificar y recuperar los valores cuando se ejecuta una consulta de "Procedure almacenado", debe:
  1. Declarar una fuente de datos. Esta fuente de datos contendrá el resultado de los datos almacenados de SQL Procedure.
  2. Declarar las variables del Procedure almacenado (variables de entrada y variables de salida)
    Las variables se recuperan en el tipo especificado en WLanguage. Las variables son variables de texto de Default.
    Por lo tanto, pueden producirse conversiones entre el tipo nativo de la base de datos y el tipo WLanguage. Estas conversiones pueden causar errores inesperados de redondeo o formato (por ejemplo, una fecha convertida en un string)..
    Por lo tanto, le aconsejamos que especifique los tipos de variables de WLanguage con mucho cuidado antes de ejecutar el Procedure almacenado. Para esto:
    • inicializar el valor de la Variable (tipos simples: entero, string, float)
    • especificar el tipo esperado con escribir a máquina (no soportado en esta versión).
      El nombre de estas variables debe corresponder al nombre de los parámetros de este Procedure en Sybase.
    Observación: En algunos casos, el servidor no acepta realizar una conversión implícita. Se visualiza un error de conversión. En este caso, debe inicializar el tipo definiendo cualquier valor ordinario en el tipo seleccionado..
    Por ejemplo, para definir un tipo numérico, utilice MyQuery.Parameter=0.
  3. Ejecuta el Procedure almacenado con HExecuteSQLQuery.

Observaciones

  • HExecuteSQLQuery debe utilizarse con:
    • el nombre de la conexión,
    • la constante hQueryWithoutCorrection.
  • Las variables declaradas deben ser idénticas a las utilizadas. De lo contrario, se produce un error WLanguage.
  • En la llamada a la Procedure almacenada, se debe utilizar la sintaxis específica de la base de datos utilizada, incluso para la sintaxis de los parámetros. Para Sybase, los parámetros se especifican con la siguiente sintaxis: @NombreParam. Atención: el carácter "@" debe ir seguido de al menos una letra (la sintaxis @1 no está permitida).
    El mismo parámetro se puede utilizar varias veces. En este caso, la Variable correspondiente será reutilizada.
  • El valor de retorno del Procedure almacenado se devuelve en un Variable definido automáticamente por el Native Sybase Connector. Este Variable se llama RETURN_VALUE.
  • Para ejecutar una consulta sin habilitar el enlace, use la constante hNoBind en HExecuteSQLQuery.
Ejemplo
El Procedure almacenado llamado MyProc devuelve la suma de @p& y @p21 en @res. El valor de retorno es 2*@res.
El código utilizado para crear esta Procedure en el servidor es el siguiente:
CREATE PROCEDURE MyProc(@p1 int, @p2 int, @res int output)
AS select @res=@p1+@p2
return 2*@res

1. Declaración de la fuente de datos

La fuente de datos se utiliza para manipular las variables del Procedure que deben ser ejecutadas.
MyProc is Data Source

2. Declarando las variables utilizadas por la Procedure

Las variables que maneja el Procedure se declaran desde la fuente de datos.
MyProc.p1 = 10 // Automatically declares an integer initialized to 3
MyProc.p2 = 20
Observación: No es necesario declarar todas las variables utilizadas. En este ejemplo, la variable utilizada para recuperar el resultado de la Procedure no se declara.

3. Ejecutando el Procedure almacenado y recuperando el resultado

Para ejecutar la Procedure almacenada , simplemente use HExecuteSQLQuery:
IF HExecuteSQLQuery(MyProc, "MyConnection", hQueryWithoutCorrection, "MyProc @p1,@p2,@res") THEN
Trace("res=" + MyProc.res)
Trace("p1=" + MyProc.p1)
Trace("p2=" + MyProc.p2)
Trace("return_value=" + MyProc.return_value)
ELSE
Error(HErrorInfo())
END
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local