Hola, perdonen que moleste con esto pero no se donde preguntar, me parecio
el foro mas adecuado.
Mi consulta(se las paso asi para que se ve mejor):
"SELECT * FROM [TEMAS] WHERE ([VER] = Ver) " 'Ver=Boolean(true)
+ "And ([CATEGORIA] = pCategoria) " (<--=Text "problematica", talvez)
+ "AND ([TITULO] LIKE pBuscar) " (<---=Text "busqueda")
+ "ORDER BY [FECHA] DESC"
el problema es que no se que es lo que pasa, cuando se agrega la parte
"problematica" a la consulta de sql, esta consulta no devuelve nada, pero si
le saco la parte "busqueda" anda.
la cadena sql se va creando segun opciones del usuario y esta la opcion de
buscar entre los titulos de la tabla(funciona bien) pero lo que quiero es
filtrar la tabla por tipo de producto 1º (pCategoria) y a eso filtrar por la
busqueda del usuario(pBuscar) TODO usando parametros.
+ "And ([CATEGORIA] LIKE pCategoria) " probe con "=" en vez de "LIKE" (no
anda), empeze a separar todo con parentesis (tampoco), de la forma en que me
funciono es ej: "[CATEGORIA] = 'mesa' " pero quisiera poder hacerlo por
parametros("tambpoco armado la cadena con variables) que ademas no entiendo
porque no anda.
CATEGORIA=es el tipo de producto por ejemplo: 'silla'
pCategoria,pBuscar(los 2 son campos de texto),Ver(boolean) y todos son
parametros.
NOTAS:
-La base es en access 2003 uso asp.net 2.0 codigo en VB
-Sin usar parametros todo anda, pero no entiendo pq asi no, tampoco
anteponiendo
un "@" al nombre de los parametros (creo q eso es solo para sqlserver no?)
-No se si sera q habra un numero maximo para la clausula WHERE osea un
limite de
argumentos a comparar o sera la gran longitud q toma la cadena sql
-uso un oledbconnection
paso laa consulta por un oldbcommand "cmd.commandtext"
y agrego los parametros asi:
cmd.parameters.add("pBuscar", oledbtype.Wchar)
cmd.parameters("pBuscar").value= "cad a buscar"
-Tambien me dado cuenta q ahora si destildo Ver de un registro de la DB(osea
lo pongo en false)
en la appweb cuando la cargo me lo sigue mostrando(antes no pasaba) asi q
ahi tambien
hay problemas.
Y si hay algun buen manual de sql q trate parametros y quieran pasarmelos
gracias
tambien yo tengo uno viejito y al parecer esta todo bien peroo no anda.
Bueno espero sus ayudas, y gracias desde ya.
strConsulta = "SELECT * FROM [TEMAS] WHERE ([VER] = Ver) " & etc etc..
luego Debug.WritleLine(srtConsulta) entonces veras en la ventana de salida
como te quedo la sentencia.
solo revisar esta parte SELECT * FROM [TEMAS] WHERE ([VER] = Ver) .. esta
mal, porque Ver lo estas metiendo asi como lo ves dice Ver no dice ni true
ni false porque esta dentro las comillas.., entonces dices que es una
variable booleana, yo te aconsejo que la uses como string, hazlo asi asi..
dim strVer as string
codigo...
codigo..
if quierover = si then
strVer = "True"
else
strVer ="False
end if
luego..
strConsulta = "SELECT * FROM [TEMAS] WHERE ([VER] = " & Ver & ")" '<===
cheka bien las comilas
ahora esta parte..
+ "And ([CATEGORIA] = pCategoria) " <==aqui misma situacion anterior...
estas metiendo pCategoria asi como lo lees pCategoria, no le estas pasando
ningun valor..porque esta dentro de las comillas tienes que ponerlo
+ "And ([CATEGORIA] = " & pCategoria & ") " <== miras los " & ....
aqui estas haciendo lo mismo...
> + "AND ([TITULO] LIKE pBuscar) "
creo que deberia ser...
> + "AND ([TITULO] LIKE (" & pBuscar & ")) " <=== ojo aqui al like le puse
> parentecis para que quede mas o menos asi ya una ves procesada la
> sentencia.... "AND ([TITULO] LIKE (TextoBuscar)) porque el like es una
> una funcion que necesita parentesis (eso creo)
creo que el order by no tienes problemas... jejeje
> + "ORDER BY [FECHA] DESC"
Bueno has el debug de la sentencia completa para ver si esta
correctamente... lee atento los errores que envia el vb que te dicen en que
esta fallando cuando armas una sentencia sql aguila con los mensajes
saludos..
--
Que todo este bonito...
Lord Voldemort
Choluteca, Honduras
Visual Studio 2005 Standard
"Ivan" <ped...@yahoo.com.ar> wrote in message
news:6FB2867B-EC9B-4EC8...@microsoft.com...
para qe tengas una idea de las consultas por parametro inserta un code
snippet busca
Data - Features de ADO.net algo asi..
como insertar un code snippet.. ponte en cualquier parte de tu codigo y dale
click derecho dice insert code snippet..
este es un SP....que recibe un parametro..
Dim cmd As New SqlCommand()
cmd.Connection = conn
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "CustOrderHist"
' Create a SqlParameter for each parameter in the stored procedure.
Dim customerIDParam As New SqlParameter("@customerID", "ALFKI")
cmd.Parameters.Add(customerIDParam)
Quisas no te devuelva nada porque tienes que usar algo asi mira
para traer los registros que contenga Pa
Nombre Like(%pa%)
traera nombres Papa, Pablo, Pablito, Metapa, Locapa..
no se es % o * para access..
tener un manual.. no tengo .. y creo que el buen manual se adquiere con los
dias mientras vas aprendiendo..
yo he usado las dos formas consultas con parametros y sql dinamico o armado
como le quieras llamar.. y las dos son buenas con el problema del sql
dinamico existen agujeros que tienes que tapar como el sql inyectado...
busca en wipedia sobre eso..
Saludos
--
Que todo este bonito...
Lord Voldemort
Choluteca, Honduras
Visual Studio 2005 Standard
"Ivan" <ped...@yahoo.com.ar> wrote in message
news:0CD6B0B8-33D9-4BDA...@microsoft.com...