Foros del Web » Programando para Internet » ASP Clásico »

Problema Urgente Multiple consulta ASP

Estas en el tema de Problema Urgente Multiple consulta ASP en el foro de ASP Clásico en Foros del Web. Hola gente Tengo que ejecutar esta consulta en SQL que tiene varias consultas, cuando ejecuto me da un error, si ejecuta una a una no ...
  #1 (permalink)  
Antiguo 14/02/2005, 08:26
Avatar de heryfer  
Fecha de Ingreso: febrero-2002
Ubicación: Valencia, España
Mensajes: 164
Antigüedad: 23 años, 2 meses
Puntos: 0
Problema Urgente Multiple consulta ASP

Hola gente

Tengo que ejecutar esta consulta en SQL
que tiene varias consultas, cuando ejecuto me da un error, si ejecuta una a una no tiene problema, por lo que entiendo que le problema lo tengo cuando ejecuto mas de una instruccion.

SQL:

CREATE TEMPORARY TABLE Tmp_Abuela (
ID_Hembra INT,
ID_Padre INT,
ID_Madre INT
);

/*otras consultas*/

DROP TABLE Tmp_Abuela;

ASP:

En SQLStr estaria cargada la cadena anterior
ConectDB.Execute(SQLStr)

lo que entiene que la instruccion Execute ejecuta solo la uan consulta

Hay alguna manera de ejecurar las 2

Gracias
  #2 (permalink)  
Antiguo 14/02/2005, 08:31
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
tal cual.

ejecuta una y luego la otra .......



tuconexion.execute("CREATE TEMPORARY TABLE Tmp_Abuela (ID_Hembra INT,ID_Padre INT,ID_Madre INT)")

tuconexion.execute("DROP TABLE Tmp_Abuela")




  #3 (permalink)  
Antiguo 14/02/2005, 09:51
Avatar de heryfer  
Fecha de Ingreso: febrero-2002
Ubicación: Valencia, España
Mensajes: 164
Antigüedad: 23 años, 2 meses
Puntos: 0
El problema es que tengo que ejecutar aprox 20 comandos.
lo que no es muy optimo de esta manera.

me imagino que debe haber alguna otra solucion
  #4 (permalink)  
Antiguo 14/02/2005, 10:32
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 20 años, 7 meses
Puntos: 2
Hola heryfer!
Lo que se me ocurre es un poquito mareado, lo tengo en la cabeza y espero que pueda transcribirlo correctamente:
Podés declarar variables que contengan el texto de la consulta sql como consulta1, consulta2.... consultan (siempre con un número atrás y el mismo nombre)
Entonces generas un bucle en el momento de ejecutar las consultas.
Por ejemplo:
While bandera <=21
tuconexion.execute(consulta&bandera)
bandera=bandera+1
Wend
Si bandera comienza en uno, ejecutaría todas las consultas con un solo procedimiento.
Lo que sí debes tomarte el trabajo de cargar los textos sql en distintas variables.
Espero que te sea util, si hay algo que no comprendes hacemelo saber!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #5 (permalink)  
Antiguo 14/02/2005, 10:45
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Cita:
Iniciado por heryfer
El problema es que tengo que ejecutar aprox 20 comandos.
lo que no es muy optimo de esta manera.

me imagino que debe haber alguna otra solucion
entonces hazte un procedimiento almacenado pues
  #6 (permalink)  
Antiguo 14/02/2005, 11:51
Avatar de heryfer  
Fecha de Ingreso: febrero-2002
Ubicación: Valencia, España
Mensajes: 164
Antigüedad: 23 años, 2 meses
Puntos: 0
Gracias verinchi por tu sugerencia, la voy analizar

No puedo utilizar procedimientos almacenados por que estoy usando MySQL
por eso es el problema...

Esto me imagino que es un problema comun cuando se usan consultas complicadas sobre un motor MySQL.

Última edición por heryfer; 14/02/2005 a las 11:54
  #7 (permalink)  
Antiguo 14/02/2005, 11:57
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
entonces creo que te estas quedando sin alternativas.

my sql fanfarronea de ser la bd no transaccional mas rapida del universo, asi que no deberia haber problema con ejecutar 20 executes sobre ella de una pasada.
  #8 (permalink)  
Antiguo 14/02/2005, 12:14
Avatar de heryfer  
Fecha de Ingreso: febrero-2002
Ubicación: Valencia, España
Mensajes: 164
Antigüedad: 23 años, 2 meses
Puntos: 0
Si por ese lado me quedo trankilo ya que en "teoria" MySQL se bancaria tantas consultas: las paso el codigo conpleto para que tengan una idea:

/* ------------- Crea Tabla Abuela -------------*/
CREATE TEMPORARY TABLE Tmp_Abuela (
ID_Hembra INT,
ID_Padre INT,
ID_Madre INT
);

INSERT INTO Tmp_Abuela SELECT ID_Hembra, ID_Padre, ID_Madre
FROM R_Hembras WHERE ID_Up = [#UP];

/*select * from Tmp_Abuela;

/* ------------- Crea Tabla Abuelo -------------*/
CREATE TEMPORARY TABLE Tmp_Abuelo (
ID_Macho INT,
ID_Padre INT,
ID_Madre INT
);

INSERT INTO Tmp_Abuelo SELECT ID_Macho, ID_Padre, ID_Madre
FROM R_Machos
WHERE ID_Up = [#UP];

/*select * from Tmp_Abuelo;

/* ------------- Crea Tabla Madres -------------*/
CREATE TEMPORARY TABLE Tmp_Madres (
ID_Hembra INT,
ID_Padre INT,
ID_Madre INT,
ID_AbuelaP INT,
ID_AbueloP INT,
ID_AbuelaM INT,
ID_AbueloM INT
);

INSERT INTO Tmp_Madres
SELECT R_Hembras.ID_Hembra, R_Hembras.ID_Padre, R_Hembras.ID_Madre,
Tmp_Abuelo.ID_Madre, Tmp_Abuelo.ID_Padre,
Tmp_Abuela.ID_Madre, Tmp_Abuela.ID_Padre

FROM R_Hembras, Tmp_Abuela, Tmp_Abuelo
WHERE ID_Up = [#UP] AND
(R_Hembras.ID_Madre = Tmp_Abuela.ID_Hembra) AND
(R_Hembras.ID_Padre = Tmp_Abuelo.ID_Macho);

/*select * from Tmp_Madres;

/* ------------- Crea Tabla Padres -------------*/
CREATE TEMPORARY TABLE Tmp_Padres (
ID_Macho INT,
ID_Padre INT,
ID_Madre INT,
ID_AbuelaP INT,
ID_AbueloP INT,
ID_AbuelaM INT,
ID_AbueloM INT
);

INSERT INTO Tmp_Padres
SELECT R_Machos.ID_Macho, R_Machos.ID_Padre, R_Machos.ID_Madre,
Tmp_Abuelo.ID_Madre, Tmp_Abuelo.ID_Padre,
Tmp_Abuela.ID_Madre, Tmp_Abuela.ID_Padre

FROM R_Machos, Tmp_Abuela, Tmp_Abuelo
WHERE ID_Up = [#UP] AND
(R_Machos.ID_Madre = Tmp_Abuela.ID_Hembra) AND
(R_Machos.ID_Padre = Tmp_Abuelo.ID_Macho);

/*select * from Tmp_Padres ;

/* ------------- Crea Tabla Hijas -------------*/
CREATE TEMPORARY TABLE Tmp_Hijas (
ID_Hembra INT,
ID_Padre INT,
ID_AbuP INT,
ID_AbuM INT,
ID_BisP1 INT,
ID_BisM1 INT,
ID_BisP2 INT,
ID_BisM2 INT
);

INSERT INTO Tmp_Hijas
SELECT
R_Hembras.ID_Hembra,
R_Hembras.ID_Padre,
Tmp_Padres.ID_Padre AS ID_AbuP,
Tmp_Madres.ID_Padre AS ID_AbuM,
Tmp_Padres.ID_AbueloP AS ID_BisP1,
Tmp_Padres.ID_AbueloM AS ID_BisM1,
Tmp_Madres.ID_AbueloM AS ID_BisP2,
Tmp_Madres.ID_AbueloM AS ID_BisM2


FROM R_Hembras, Tmp_Padres, Tmp_Madres
WHERE ID_Up = [#UP] AND
(R_Hembras.ID_Madre = Tmp_Madres.ID_Hembra) AND
(R_Hembras.ID_Padre = Tmp_Padres.ID_Macho);

/*select * from Tmp_Hijas;

/* ------------- Crea Tabla Arbol -------------*/
CREATE TEMPORARY TABLE Tmp_Arbol (
ID_Hembra INT,
ID_Padre INT,
ID_AbuP INT,
ID_AbuM INT,
ID_BisP1 INT,
ID_BisM1 INT,
ID_BisP2 INT,
ID_BisM2 INT
);

/* ------------- Inserto Tabla Hijas en Arbol -------------*/

INSERT INTO Tmp_Arbol
SELECT
Tmp_Hijas.ID_Hembra,
Tmp_Hijas.ID_Padre,
Tmp_Hijas.ID_AbuP AS ID_AbuP,
Tmp_Hijas.ID_AbuM AS ID_AbuM,
Tmp_Hijas.ID_BisP1 AS ID_BisP1,
Tmp_Hijas.ID_BisM1 AS ID_BisM1,
Tmp_Hijas.ID_BisP2 AS ID_BisP2,
Tmp_Hijas.ID_BisM2 AS ID_BisM2
FROM Tmp_Hijas;


/* ------------- Inserto Tabla Madres en Arbol -------------*/

INSERT INTO Tmp_Arbol
SELECT
Tmp_Madres.ID_Hembra,
Tmp_Madres.ID_Padre,
0,0,0,0,0,0

FROM Tmp_Madres
WHERE Tmp_Madres.ID_AbuelaP = 0;

/* ------------- Inserto Tabla Abuelas en Arbol -------------*/

INSERT INTO Tmp_Arbol
SELECT
Tmp_Abuela.ID_Hembra,
0,0,0,0,0,0,0

FROM Tmp_Abuela
WHERE Tmp_Abuela.ID_Padre = 0;


/* ------------------------ Consulta -----------------------*/
select * from Tmp_Arbol ORDER by ID_Hembra;

/* ----------------- Desbloquea las tablas -----------------*/
UNLOCK TABLES;


/* --------------- Borrado tablas Temporarias --------------*/
DROP TABLE Tmp_Abuela;
DROP TABLE Tmp_Abuelo;
DROP TABLE Tmp_Madres;
DROP TABLE Tmp_Padres;
DROP TABLE Tmp_Hijas;
DROP TABLE Tmp_Arbol;
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:10.