FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Cursores en DSQL
Bueno, se me ocurre ahora esta pregunta:
Si quisiera usar sursores sería necesario que lo hiciera con DSQL. Cuándo uso DSQL? En la Referencia del Lenguaje dice que DSQL permite crear sentencias en tiempo de ejecución. Cómo? Alguien podría ofrecerme algún ejemplo. He buscado en sitios pero no he encontrado. Ahora, la última pregunta. Puedo crear un SP con DSQL? Gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre. |
#2
|
||||
|
||||
Hola,
Cita:
Por si pudiese ir tu duda por este camino, cuando lanzas una setencia SELECT, por ejemplo desde una aplicación Delphi por medio de un componente TQuery (o similares), ya estás usando cursores, aunque el componente (en el caso del BDE, a través del controlador SQL-Links InterBase) encapsula y oculta toda su gestión. Al fin y al cabo, el cursor es el mecanismo que tiene el servidor para devolver (al cliente) el conjunto resultado de filas que produce la consulta, provenga ésta de una sentencia dinámica o estática. Cita:
Cita:
1. a través de las funciones del API dedicadas al DSQL (Documentación de InterBase 6, volumen "Api Guide", capítulo "6.- Working with Dynamic SQL"), bien llamándolas directamente, o encapsuladas en métodos de componentes (BDE, IBX, DBX, componentes de acceso que te crees tú, ...). 2. mediante SQL embebido (Documentación de InterBase 6, volumen "Embebed SQL", capítulo "13.- Using Dynamic SQL"), aunque al final el preprocesador las traducirá por las correspondientes llamadas al API y estarás en el caso 1. Cita:
Saludos. Última edición por kinobi fecha: 03-07-2003 a las 01:51:25. |
#3
|
||||
|
||||
A la última pregunta has respondido:
Cita:
Además por qué si no puedo crear mis propios cursores se expone también la sentencia FETCH también como una sentencia DML que me permite desplazarme a través del cursor?
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre. |
#4
|
||||
|
||||
Hola,
[... DSQL en procedimientos almacenados ...] Cita:
Cita:
En resumen, y para el caso concreto de InterBase: en el código de un procedimiento almacenado no puedes crear una sentencia dinámicamente en tiempo de ejecución. Por ello no es posible pasar como parámetro al procedimiento una sentencia SQL desde el cliente (lo comento porque es una cuestión planteada cada cierto tiempo en este foro), ni tampoco crearla en el propio procedimiento. Lo anterior también es aplicable a triggers. Saludos. |
|
|
|