Variables parametrizadas en consulta a SQL Server

264 views
Skip to first unread message

Antonio.xt

unread,
Nov 27, 2014, 12:55:51 PM11/27/14
to publice...@googlegroups.com

Buen dia grupo, me tope con este detalle.
Cuando hago consultas a una tabla de una base de datos de SQL Server por lo general uso variables parametrizadas, ejemplo:

desc_stat = "ACTIVO"
SQLComando = "SELECT id, nombre FROM Usuarios WHERE status=?desc_stat"
=SQLEXEC(nHandle, SQLComando, "curConsulta")

Pero hay una base de datos, (la cual yo no hice, pero que ahora voy a tener que hacer consultas) que no me acepta estas variables parametrizadas; no marca error, simplemente muestra la ventana para darle un valor a la variable.
Ya compare las propiedades de otras bases de datos con esta y estan iguales.
Igual hay otros metodos para hacer las consultas, en eso no tengo problema, pero de todos modos quisiera saber ya que este metodo me parece mejor.

La version es SQL Server 2008 R2

Saludos, y gracias de antemano...

Allan Raúl Acuña

unread,
Nov 27, 2014, 1:00:28 PM11/27/14
to publice...@googlegroups.com
Hola Antonio.

Ya probastes usar variables de memoria m.

o bien declara las variables como publicas, creo que el problema es desde el Fox no la base de datos.

m.desc_stat = "ACTIVO"
SQLComando = "SELECT id, nombre FROM Usuarios WHERE status=?m.desc_stat"
=SQLEXEC(nHandle, SQLComando, "curConsulta")

Saludos cordiales.

Lic. Allan Raúl Acuña
Analista Programador
msn= allan...@hotmail.com
skype= NicEasySoft
            +(505) 8 999 8950
Managua, Nicaragua
Centroamérica



Date: Thu, 27 Nov 2014 09:55:51 -0800
From: puent...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Variables parametrizadas en consulta a SQL Server

Antonio.xt

unread,
Nov 27, 2014, 1:28:55 PM11/27/14
to publice...@googlegroups.com

Que tal Allan, fijate que de hecho son variables de memoria las que uso, y declararlas como publicas seria igual ya que el alcance es solo en Fox,
y lo raro es que es solo en esa base de datos, esas variables parametrizadas las he usado bastante en otras bases de datos y sin problema.

Víctor Hugo Espínola Domínguez

unread,
Nov 27, 2014, 1:28:57 PM11/27/14
to publice...@googlegroups.com
Hola Antonio

Si te pide el valor del parámetro es porque esa variable no está definida.

Saludos,
Víctor.
Lambaré - Paraguay.

Antonio.xt

unread,
Nov 27, 2014, 1:53:18 PM11/27/14
to publice...@googlegroups.com


Que tal Victor, no es por ahi, si esta definida, la he depurado y en ese momento si tiene un valor.

Victor Espina

unread,
Nov 27, 2014, 2:45:39 PM11/27/14
to publice...@googlegroups.com
Antonio, yo uso esa version de SQL desde hace ya dos años sin ningun tipo de problemas.  Que driver estas usando?

Victor

Martin Paredes

unread,
Nov 27, 2014, 3:04:12 PM11/27/14
to publice...@googlegroups.com
buen día colega, que versión de windows tiene la estación de trabajo o es por terminal services.....

Salds..
Mapasac
Genertal Escobedo, N.L.

Antonio.xt

unread,
Nov 27, 2014, 3:16:51 PM11/27/14
to publice...@googlegroups.com

Que tal Victor, el driver que he usado es "SQL Server", el que selecciono.

Voy a probar con el "Native Client"

Antonio.xt

unread,
Nov 27, 2014, 3:19:34 PM11/27/14
to publice...@googlegroups.com

Hola Martin, la version es Windows 7 Ultimate SP 1, de 32

Aunque como comento, desde esta maquina me conecto a varias bases de datos del mismo servidor, misma sesion, pero solo esta es la que presenta ese detalle.

mpulla

unread,
Nov 27, 2014, 5:22:24 PM11/27/14
to publice...@googlegroups.com
Hola Antonio.

Antes siempre las declarava como variables locales y nunca tuve problemas, luego siguiendo en consejo del profe Luis María y de Víctor Espina para evitar este tipo de problemas, siempre las declaro como privadas.

PRIVATE liAreaId As Integer
liAreaId = AreaRs.iAreaId

SQLEXEC(_Screen.odBCTALK.iodbchandle, [Delete From mitabla where Id = ?liAreaId])

Saludos.
Mauricio

Antonio.xt

unread,
Nov 27, 2014, 5:25:16 PM11/27/14
to publice...@googlegroups.com


UPS !! Disculpen, pero ya quedo solucionado...

Lo que pasa es que estoy haciendo un pequeño proyecto en capas, y la capa de datos esta completamente aislada (este era el detalle), y a la vez estoy probando dos metodos para separar la capa de los datos.

Al usar VFP+SQL, yo por lo general armo la sentencia SQL inmediatamente antes de SQLEXEC, y no hay problema, pero en este caso la sentencia se manda como un parametro hacia una funcion de la capa de datos, y por lo mismo aqui ya no tienen alcance las variables locales con las que arme la sentencia SQL.

Bueno, es que estaba muy acostumbrado a usar ese metodo, pero habra que hacer cambios, el armar el comando SQL de otro forma es el unico "pero"; pero todo sea por las "Buenas practicas" y sus ventajas.

Saludos y gracias...



Allan Raúl Acuña

unread,
Nov 27, 2014, 5:31:00 PM11/27/14
to publice...@googlegroups.com
En hora buena Antonio!


Saludos cordiales.

Lic. Allan Raúl Acuña
Analista Programador
msn= allan...@hotmail.com
skype= NicEasySoft
            +(505) 8 999 8950
Managua, Nicaragua
Centroamérica



Date: Thu, 27 Nov 2014 14:25:16 -0800
From: puent...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: Variables parametrizadas en consulta a SQL Server

mpulla

unread,
Nov 27, 2014, 5:43:59 PM11/27/14
to publice...@googlegroups.com
Hola Antonio.

Estoy trabajando para una empresa en donde estamos desarrollando xojo y PostgreSql, el día de ayer me rompía la cabeza en un pequeño bucle para llenar un listbox

While rs.bof
lst.AddRow(rs.Field("campo1").StringValue, rs.Field("campo2").StringValue)
rs.nextrecord
end

El problema era que se metía en un bucle infinito, 1 hora más tarde de probar y probar, digo a mis compañeras, pago el almuerzo a la que me diga que está mal en este código.
viene la primera ve el código, no dice nada, viene la segunda tampoco dice nada, llega la tercera no se demora ni 30 segundos y dice:
Que no es When rs.EOF

jajaj, senti a reir.

Creo que nos hace falta un relax.

Saludos.
Mauricio

Allan Raúl Acuña

unread,
Nov 27, 2014, 5:47:53 PM11/27/14
to publice...@googlegroups.com
jejeje a todos nos ha pasado.

Saludos cordiales.

Lic. Allan Raúl Acuña
Analista Programador
msn= allan...@hotmail.com
skype= NicEasySoft
            +(505) 8 999 8950
Managua, Nicaragua
Centroamérica



Date: Thu, 27 Nov 2014 14:43:59 -0800
From: publice...@googlegroups.com

To: publice...@googlegroups.com
Subject: [vfp] Re: Variables parametrizadas en consulta a SQL Server

Victor Espina

unread,
Nov 29, 2014, 10:28:14 AM11/29/14
to publice...@googlegroups.com
Ja ja , me recordaste el caso de un alumno de PAscal que no entendia porque su programa colgaba el PC.  El codigo era este:

FOR i = 1 TO i + 1 BEGIN
 ...
END

Lo mas triste fue la media hora que me tomo lograr que entendiera cual era el problema :)

Victor

Antonio.xt

unread,
Dec 1, 2014, 9:25:40 AM12/1/14
to publice...@googlegroups.com

Asi es, a veces necesitamos despejarnos un rato de los numeros, a veces nos topamos con "pequeños detalles" a los que no le encontramos solucion aunque sea algo sencillo, curiosamente la solucion sale despues de terminar el cafe o despues de las 5 de la tarde JaJaJa

Saludos colegas, es buenos saber que no soy el unico JaJaJa

Aprovechando Victor, para agradecerte ya que un metodo que estoy probando es usando tu clase OdbcConn, muy buena y muy facil de usar.

Victor Espina

unread,
Dec 1, 2014, 4:01:04 PM12/1/14
to publice...@googlegroups.com
Me alegro que te funcione.

Saludos

Victor
Reply all
Reply to author
Forward
0 new messages