Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Variables en las SELECT, GROUP BY y ORDER BY de una instrucción SQL. ¿Es posible?

Estas en el tema de Variables en las SELECT, GROUP BY y ORDER BY de una instrucción SQL. ¿Es posible? en el foro de Visual Basic clásico en Foros del Web. Saludos amigos. El problema que tengo es que estoy tratando de pasarle variables a una instrucción SQL, y me deja hacerlo perfectamente mientras dicha variable ...
  #1 (permalink)  
Antiguo 06/02/2007, 07:13
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Variables en las SELECT, GROUP BY y ORDER BY de una instrucción SQL. ¿Es posible?

Saludos amigos.

El problema que tengo es que estoy tratando de pasarle variables a una instrucción SQL, y me deja hacerlo perfectamente mientras dicha variable esté en la cláusula WHERE, asi:

.Adodc_Gráfico.RecordSource = "select SUM(CAMPO1) from AVISOS where (CAMPO2='" & Variable & "')

Eso funciona perfectamente, pero mi preguntas son:
1) ¿Se puede sustituir el nombre del campo por una variable tipo string en la parte SELECT de una sentencia SQL?
2) Lo mismo para la cláusula GROUP BY
3) Lo mismo para la cláusula ORDER BY.

Algo como esto:

1) .Adodc_Gráfico.RecordSource = "select SUM('" & Variable1 & "') from AVISOS where ...
2) .Adodc_Gráfico.RecordSource = "select * from AVISOS where ... order by " & Variable1 & "'

3) .Adodc_Gráfico.RecordSource = "select * from AVISOS where ... group by " & Variable1 & "'

...donde Variable1 es igual al string "CAMPO1"

Gracias
  #2 (permalink)  
Antiguo 06/02/2007, 07:15
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Re: Variables en las SELECT, GROUP BY y ORDER BY de una instrucción SQL. ¿Es posible?

Estoy hablando en todo momento de Visual Basic 6, empleando ADO.

Gracias
  #3 (permalink)  
Antiguo 06/02/2007, 07:27
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Variables en las SELECT, GROUP BY y ORDER BY de una instrucción SQL. ¿Es posible?

Jorevale

claro no deverias tener problema por que envias al final una cadena al SQL, prueba generando la cadena sql y asignandola al adodc.

strSQL = "select sum(" & txtCampoSuma.text & ") as Total from Tabla where " & txtCampoWhere.text & "= " & txtCampoBusqueda.text

Adodc_Gráfico.RecordSource = strSQL

eso si recuerda usar el ' cuando sea campo tipo texto el valor a buscar.
  #4 (permalink)  
Antiguo 06/02/2007, 07:48
jorevale
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Ya lo conseguí...



Gracias Tazzito, pero el asunto es que lo que yo le estoy pasando como variable a las instrucciones SQL es el nombre del campo.

Lo que hice fue construir la variable antes de pasarsela al Recordsource del ADO, y luego le paso a éste la cadena previamente construida, o sea:

Cadena_SUM = "select SUM(CSI),SUM(CCI),SUM(GEMP),SUM(GTEC),SUM(CAJA),SU M(EMP),SUM(TEC),SUM(TAL),SUM(TEMP),COUNT(EMP)," & XSel_3_1 & " from AVISOS group by " & XSel_3_1
Cadena_Gráfico = "select " & XSel_3_1 & ",SUM(TEMP) from AVISOS group by " & XSel_3_1
Cadena_Cuenta = "select " & XSel_3_1 & ",COUNT(EMP) from AVISOS group by " & XSel_3_1

'Hasta aqui hemos construido tres cadenas en las que ponemos el nombre de un campo desde una variable: XSel_3_1, y ahora se la pasamos al ADO

Select Case XSel_3_1
Case Is = "OPE"
.Adodc_Est.RecordSource = "select * from AVISOS order by AVI"
.Adodc_SUM.RecordSource = Cadena_SUM
.Adodc_Gráfico.RecordSource = Cadena_Gráfico
.Adodc_Cuenta.RecordSource = Cadena_Cuenta

  #5 (permalink)  
Antiguo 06/02/2007, 08:04
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Variables en las SELECT, GROUP BY y ORDER BY de una instrucción SQL. ¿Es posible?

es lo mismo y no veo el problema xD ni ninguna limitante a tus 3 preguntas xD lo que yo te mostre fue solo un ejemplo :D
  #6 (permalink)  
Antiguo 06/02/2007, 08:06
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Re: Variables en las SELECT, GROUP BY y ORDER BY de una instrucción SQL. ¿Es posible?

Claro. No había interpretado bien tu respuesta. Mil gracias.
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 09:49.