|
|
|
|
- Presentación
- ¿Cómo proceder?
- Etapas
- Observaciones
- Ejemplo
- 1. Declaración de la fuente de datos
- 2. Declaración de variables
- 3. Preparación de la consulta
- 4. Valores de los parámetros y reejecución de la consulta
Conector Nativo Oracle: Ejecutar la misma consulta varias veces
Disponible solo con este tipo de conexión
En algunos casos, puede ser useful ejecutar la misma consulta varias veces modificando uno o varios parámetros. Por ejemplo, es posible que desee ejecutar una consulta Insertar varias veces para agregar varios registros a un archivo. Se pueden implementar varias soluciones: - Ejecute la consulta directamente (con HExecuteSQLQuery) tantas veces como sea necesario y cambie cada vez el o los parámetros deseados.
- Prepare la consulta a ejecutar (con HPrepareSQLQuery) así como los diferentes parámetros a modificar. A continuación, ejecute la consulta tantas veces como sea necesario con HExecuteSQLQuery. Esta solución es mucho más rápida y optimiza el tiempo que se tarda en recorrer el resultado de una consulta (consulta SELECT).
Esta página de ayuda explica cómo se puede implementar esta segunda solución. Etapas Para preparar y ejecutar una consulta varias veces: - Declarar una fuente de datos. Esta fuente de datos contendrá el resultado de la consulta SQL.
- 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 ello:- inicializar el valor de la Variable (tipos simples: entero, string, float)
- especificar el tipo esperado con el escribir a máquina Property (no soportado en esta versión)
- Prepare la consulta con HPrepareSQLQuery.
- Especifica el valor de los diferentes parámetros a tener en cuenta y ejecuta 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 la conexión,
- la constante de 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. Por lo tanto, para Oracle, los parámetros se especifican con la sintaxis :ParamName..
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. - Para ejecutar una consulta sin activar la opción bind, utilice la constante hNoBind en HExecuteSQLQuery.
Una consulta de inserción debe ser ejecutada varias veces en la PERSONA tabla. 3 parámetros se modifican cada vez que se realiza una adición: - el apellido.
- el nombre de pila.
- la edad.
1. Declaración de la fuente de datos La fuente de datos se utiliza para manipular las diferentes variables que se modificarán cada vez que se ejecute la consulta: 2. Declaración de variables En este ejemplo, se modificarán tres variables. Las tres variables pueden declararse. Sin embargo, sólo se declarará el age_person Variable. Para especificar el tipo de una consulta Variable, asigne a esta Variable una Variable existente del tipo deseado. dsInsert.age_person = 0 // Forces the type to integer // other solution: // B is int dsInsert.age_person = B
3. Preparación de la consulta La consulta estará preparada para ser ejecutada varias veces con HPrepareSQLQuery. HPrepareSQLQuery(dsInsert, Connection, hQueryWithoutCorrection, ... "INSERT INTO PERSON VALUES (:lastname,:firstname,:age_person)")
4. Valores de los parámetros y reejecución de la consulta Todo lo que tiene que hacer ahora es especificar el valor de los parámetros para cada ejecución de la consulta. I is int FOR I = 1 TO 10 dsInsert.lastname = "LastName " + I dsInsert.firstname = "FirstName " + I dsInsert.age_person = I HExecuteSQLQuery(dsInsert) END
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|