PC SOFT

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.
  • Presentación
  • ¿Cómo proceder?
  • Los pasos
  • Observaciones
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Conector Nativo Sybase: Ejecutar el mismo Procedure almacenado varias veces
Conectores NativosDisponible solo con este tipo de conexión
Presentación
En algunos casos, puede ser interesante ejecutar el mismo Procedure almacenado varias veces mientras se modifican uno o más parámetros.
Se pueden implementar varias soluciones:
  1. Ejecute la consulta (con HExecuteSQLQuery) tantas veces como sea necesario mientras modifica los parámetros deseados.
  2. Preparar la consulta a ejecutar (HPrepareSQLQuery) así como los diferentes parámetros para modificar y ejecutar la consulta tantas veces como sea necesario con HExecuteSQLQuery.. Esta segunda solución es mucho más rápida y optimiza la Time necesaria para navegar por el resultado de la consulta (para una consulta Select).
Esta página de ayuda explica cómo se puede implementar esta segunda solución.
¿Cómo proceder?

Los pasos

Para preparar y ejecutar una consulta varias veces, debe hacerlo:
  1. Declarar una fuente de datos. Esta fuente de datos contendrá el resultado de la consulta SQL.
  2. Declarar los tipos de variables de consulta.
    Las variables se recuperan en el tipo especificado en WLanguage. Las variables son variables de texto de Default.
    Por lo tanto, pueden ocurrir conversiones entre el tipo nativo de la base de datos y el tipo WLanguage, causando errores inesperados de redondeo o formato (la fecha se transforma en cadena, por ejemplo)..
    Por lo tanto, le aconsejamos que especifique los tipos de WLanguage de las variables con mucho cuidado antes de ejecutar la consulta. 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 esta 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. Prepare la consulta con HPrepareSQLQuery.
  4. Especifique el valor de los diferentes parámetros a tener en cuenta y ejecute la consulta con HExecuteSQLQuery. Sólo se debe especificar el nombre de la fuente de datos que corresponde a la consulta.
Este último paso debe repetirse tantas veces como sea necesario.

Observaciones

  • HPrepareSQLQuery debe utilizarse con:
    • el nombre de Connection,
    • 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, utilice la constante hNoBind en HExecuteSQLQuery.
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