Muchas gracias a Ariel y a José Troncoso.
Voy a probar sus sugerencias y ahora les cuento a todos el resultado.
Pero quería resaltar que, además de ayudarme a resolver el problema me
han enseñado un poco más sobre el funcionamiento de los gestores de
bases de datos y de OpenOffice. De verdad muchas gracias.
En cuanto a la documentación de HSQLDB, la conocía y he buscado
información allí, pero mi nivel de inglés y de conocimientos sobre bases
de datos hacen que esta documentación no me sea demasiado útil.
Un saludo.
El lun, 24-11-2008 a las 01:48 -0200, Ariel Constenla-Haile escribió:
> Hola Francisco,
>
> Francisco Martagón Gordillo escribió:
> > Intento volcar a una tabla el producto cartesiano de otras dos, ya
> > saben, cuando se combinan dos tablas que no están relacionadas y se
> > obtienen por tanto el nº de registros que resulta de multiplicar los
> > registros de una tabla origen por la otra.
> >
> > Para hacer el volcado he creado una consulta que funciona sin problemas,
> > pero cuando quiero usar esa consulta en una instrucción INSERT INTO para
> > que añada a una tabla los registros resultante de esa consulta me dice
> > que no encuentra la tabla que lleva el nombre de la consulta (¡claro, no
> > encuentra la tabla porque el origen no es una tabla, es una consulta).
>
> una consulta es simplemente una instrucción SELECT que existe sólo del
> lado del cliente, el servidor (ya sea HSQLDB embebido, o un RDBMS
> externo) no sabe nada de su existencia. Por ende, no puedes, en *este*
> caso, emplear el nombre de la consulta en una instrucción SQL como si
> fuera el nombre de una tabla.
>
> En otros casos, OOo Base permite "simular" que empleas el nombre,
> reemplazando el nombre de la consulta por su instrucción SQL *antes* de
> enviar el comando al servidor.
>
> Si "Consulta_EDAD" es una consulta, la siguiente instrucción SQL
> funciona perfectamente (siempre que no selecciones el modo "SQL
> directo", en el cual OOo Base *no* parsea la instrucción antes de
> enviarla al servidor/driver):
>
> SELECT * FROM "Consulta_EDAD" ORDER BY "apellido" DESC;
>
>
> Pero la instrucción INSERT debes ejecutarla desde el diálogo
> "Herramientas" - "SQL", en el cual las instrucciones son enviadas
> directamente al RDBMS sin ser interpretadas antes por OOo; por ende, el
> RDBMS no sabe que ese nombre se refiere a una consulta (por otra parte,
> jamás podría acceder al contenido [= la instrucción SELECT] de la misma,
> pues las consultas son objectos que existen del lado del cliente.
>
>
> Como solución podrías reemplazar, en la instrucción INSERT INTO ..., el
> nombre de la consulta por la instrucción SELECT que constituye la misma,
> quedando un enunciado anidado
>
> INSERT INTO ( filed1, field2 ) (SELECT filed1, field2 FROM (SELECT ...))
>
> Otra solución es crear un vista, en vez de una consulta.
>
> Saludos
> Ariel.
>
>
>
>
______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y m�viles desde 1 c�ntimo por minuto.
http://es.voice.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]