• Miércoles 6 de Noviembre de 2024, 00:33

Autor Tema:  Problemas Con Consulta Sql  (Leído 3821 veces)

MindEye

  • Miembro MUY activo
  • ***
  • Mensajes: 185
    • Ver Perfil
Problemas Con Consulta Sql
« en: Jueves 15 de Septiembre de 2005, 00:41 »
0
- Hola compys.

 - Vereis, mi problema es que cuando hago la siguiente consulta:
    SQL = "select * from `almace` where `nomproduto`='" & "Semilla's" & "';"

 - No me deja realizarla, me da un error.

 - Como lo puedo sorbentar...

 - Gracias.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Problemas Con Consulta Sql
« Respuesta #1 en: Jueves 15 de Septiembre de 2005, 01:15 »
0
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->SQL = "[color=blue;font-weight]Select * From almacen"[/color] <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->SQL = SQL & " Where nomproducto = " & 'Aquí va el valor de la comparación <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
El pasado son solo recuerdos, el futuro son solo sueños

MindEye

  • Miembro MUY activo
  • ***
  • Mensajes: 185
    • Ver Perfil
Re: Problemas Con Consulta Sql
« Respuesta #2 en: Jueves 15 de Septiembre de 2005, 01:39 »
0
- El problema esta en que el valor a comparar, es de tipo VARHCAR, y cuando le paso el valor, ( que yo sepa ) para comparar, se lo tengo que pasar entre comillas simples.

 - Pero el problema me surje  cuando el valor para comparar, contiene una comilla simple, osea

 SQL = "select * from `tabla` where `nombre`=' " & "Julian" & " ';"
    Con esta no hay problem
 SQL = "select * from `tabla` where `nombre`=' " & "Julian's" & " ';"
    Esta es la que me da problemas.
No me deja ejecutar la consulta. Me da un error.

 - Que puedo hacer....

 - Y gracias por la ayuda.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Problemas Con Consulta Sql
« Respuesta #3 en: Jueves 15 de Septiembre de 2005, 01:45 »
0
Lo que pasa es que en ese momento cierras la primera comilla que abristes, lo que podrias hacer ahi, seria utilizar una variable que contenga el valor de la comilla simple, eso pienso yo, ahi si no sabo.
Citar
's(Aqui estarias cerrando)" & " ';"(Aqui la volverias a abrir)
El pasado son solo recuerdos, el futuro son solo sueños

Juanolo

  • Miembro MUY activo
  • ***
  • Mensajes: 202
    • Ver Perfil
Re: Problemas Con Consulta Sql
« Respuesta #4 en: Jueves 15 de Septiembre de 2005, 04:52 »
0
Hola Mindeye!

No tengo la solución, pero si tengo comentarios.

Hace ya un tiempo tuve el mismo problema. El problema, como bien lo sospechas, es la comilla que está en la cadena a comparar.

Simplemente no pude. Me cansé de buscar en foros (éste y otros); si bien encontré discusiones referidas al problema, nunca se mencionó una solución real. Sólo proposiciones tentativas que terminaban en nada.

No quisiera decir esto, pero mi recomendación es que busques la forma de no incluir estas comillas en los campos de las tablas, pues son un problema. Al final, me convencí (si estoy equivocado, por favor que alguien lo diga ya). Como te decía, me convencí de que es un problema sin solución, y no importa el truco que tratemos de usar, siempre vence.

A la espera de algún iluminado con la solución, les saludo con la esperanza no del todo muerta.

 :(
La luz que sólo se ilumina a sí misma, es oscuridad.

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Problemas Con Consulta Sql
« Respuesta #5 en: Jueves 15 de Septiembre de 2005, 08:39 »
0
En SQL de Access hay dos formas de encontrar una comilla simple.

Para encontrar Julian's se usa 'Julian''s'
Comilla simple, Julian, comilla simple, comilla simple, s, comilla simple

La otra opción es:  'Julian[']s'

 :)

También descubrí una rutina para que se basa en este principio para buscar palabras semejantes o que pudieran estar mal escritas con o sin acento por ejemplo:
El usuario busca 'cancion' pero en la base de datos existe 'canción' o al revés, el usuario busca canción y en la base de datos existe CANCION sin acento. Si les interesa la publico.

 :comp:

jimmy007

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Problemas Con Consulta Sql
« Respuesta #6 en: Jueves 15 de Septiembre de 2005, 12:23 »
0
Si usas SQL Server esta solucionado, pues es mejor utilizar un procedimiento almacenado con un parametro de tipo cadena y desde VB lo llamas pasandole el parametro

por ejemplo:

El Porcedimiento almacenado seria mas o menos asi:
------------------------------------------------------------
CREATE PROCEDURE pruebita
@nombre varchar(20)
AS

SELECT * FROM Tabla WHERE nombre = @nombre
GO

-----------------------------------
para llamarlo desde VB seria:
-----------------------------------
Dim cnx As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim prm As New ADODB.Parameter
Dim rst As New ADODB.Recordset

cnx.Open "Provider=SQLOLEDB.1; etc."

cmd.CommandType = adCmdStoredProc
cmd.CommandText = "pruebita"
Set prm = cmd.CreateParameter("nom", adVarChar, adParamInput, 20)
prm.Value = "Julian's"   <----aki como veras no hay problema
cmd.Parameters.Append prm
cmd.ActiveConnection = cnx

Set rst = cmd.Execute   <----aki te devuelve el recordset

El chiste es utilizar un parametro para no estar concatenando con el apostrofe (') ke es donde esta el problema.

Claro esto es con SQL Server, es la ventaja de utilizar un SGBD en regla y no el motor MS JET (access).

Saludos.  :hola:

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Problemas Con Consulta Sql
« Respuesta #7 en: Jueves 15 de Septiembre de 2005, 16:03 »
0
En resumen, dos soluciones:

* Usas store procedures si tu DB te lo permite
* para contener en la consulta la comilla simple escribes o haces que la comilla se repita.
Ej

'Julian''s'

Salu2
 :comp:
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

Juanolo

  • Miembro MUY activo
  • ***
  • Mensajes: 202
    • Ver Perfil
Re: Problemas Con Consulta Sql
« Respuesta #8 en: Jueves 15 de Septiembre de 2005, 16:11 »
0
Todos los días se aprende algo nuevo!

Gracias, también lo probaré.

 :kicking:
La luz que sólo se ilumina a sí misma, es oscuridad.

MindEye

  • Miembro MUY activo
  • ***
  • Mensajes: 185
    • Ver Perfil
Re: Problemas Con Consulta Sql
« Respuesta #9 en: Sábado 17 de Septiembre de 2005, 10:13 »
0
- Gracias copmys.

 - Yo trabajo con MySQL.

 - Lo del las dos comillas, me funciona. me quedo con este.

 - Super gracias.