PDA

Ver la Versión Completa : MySQL y ADO


SaurioNet
28-06-2004, 12:34:14
Hola a todos:

No tengo mucha experiencia en MySql y necesito saber si la cláusula "... IN ..." funciona exactamente igual en MySql que en Sql Server, es decir ¿admite una subconsulta?.

La otra duda que tengo es que no consigo ejecutar una instrucción que incluya la creación de una tabla temporal, cargarla con determinados datos; ejecutar una consulta que contempla datos de la tabla temporal, para obtener un RecordSet y por último destruir la tabla temporal. En código sería algo así.

CREATE TEMPORARY TABLE tmp .....;
INSERT INTO tmp ....;
SELECT .... FROM ... WHERE ...;
DROP TABLE tmp;

He ejecutado esta instrucción en el administrador de MySql y ha funcionado correctamente, pero desde mi código he probado la misma consulta y no consigo ejecutarla correctamente. ¿Puede ser que ADO no soporte este funcionamiento?. Lo que pretendo es que los valores resueltos por el SELECT, se almacenen en un RecordSet.

Gracias por vuestra colaboración.

SaurioNet
28-06-2004, 13:45:34
La única solución que he encontrado consiste en aplicar cada instrucción por separado y de ese modo funciona. Si a alguien se le ocurre otro modo y le apetece exponerlo ánimo.

roman
28-06-2004, 17:34:52
No tengo mucha experiencia en MySql y necesito saber si la cláusula "... IN ..." funciona exactamente igual en MySql que en Sql Server, es decir ¿admite una subconsulta?.


MySql soporta subconsultas desde la versión 4.1 y, según la documentación, soporta todas las formas de subconsulta que establece el estándar.



La otra duda que tengo es que no consigo ejecutar una instrucción que incluya la creación de una tabla temporal, cargarla con determinados datos; ejecutar una consulta que contempla datos de la tabla temporal, para obtener un RecordSet y por último destruir la tabla temporal. En código sería algo así.

CREATE TEMPORARY TABLE tmp .....;
INSERT INTO tmp ....;
SELECT .... FROM ... WHERE ...;
DROP TABLE tmp;


Quizá no necesites una tabla temporal. Consulta en la documentación de MySql la sintaxis para CREATE TABLE (http://dev.mysql.com/doc/mysql/en/CREATE_TABLE.html) que admite la forma:


create table tabla select campos from otra tabla


(La parte de crear una tabla a partir de otra viene casi al final de la página que te indico)



He ejecutado esta instrucción en el administrador de MySql y ha funcionado correctamente, pero desde mi código he probado la misma consulta y no consigo ejecutarla correctamente. ¿Puede ser que ADO no soporte este funcionamiento?. Lo que pretendo es que los valores resueltos por el SELECT, se almacenen en un RecordSet.


Bueno, si en el administrado de MySql puedes hacer algo que no se puede con ADO, claramente la limitación es de ADO.

Yo te sugiero probar de usar Zeos (http://www.zeoslib.net/) en lugar de ADO.

Otra cosa: de preferencia abre varios hilos para consultas distintas.

// Saludos

SaurioNet
16-07-2004, 09:35:33
Hola Roman:

gracias por tu ayuda.
En cuanto a lo que me comentas sobre la utilización de hilos, ¿podrías indicarme cómo se abren esos hilos o dónde puedo ampliar la informacion?

Saludos.

roman
16-07-2004, 09:39:27
Me refería a abrir distintos hilos en los foros cuando preguntes varias cosas.

// Saludos