• Lunes 23 de Diciembre de 2024, 03:58

Autor Tema:  Problemas Con Caracter "\"  (Leído 3223 veces)

jandresaedo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Problemas Con Caracter "\"
« en: Miércoles 4 de Julio de 2007, 00:29 »
0
HOla:
     Resulta que tomo el path de un directorio y lo dejo en una variable:
C:\Lista.net .
Tengo un problemita con esta cadena, porque cuando la paso a la base de datos entra sin el caracter "\" , y eso puede ser por el problema de las comillas:

sql = "INSERT INTO " + Tabla + " (" + Campo + ") VALUES ('" + Valor + "')"

Como pueden ver el "Valor" es donde va la cadena "C:\Lista.net", entonces estaba pensando que pueden ser las comillas simples las que impiden que el caracter "\" llegue.Alguna idea?.

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Problemas Con Caracter "\"
« Respuesta #1 en: Miércoles 4 de Julio de 2007, 00:40 »
0
En valor viene "C:\Lista.net" o viene solo "\" ?

 :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



jandresaedo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Problemas Con Caracter "\"
« Respuesta #2 en: Miércoles 4 de Julio de 2007, 00:48 »
0
Cita de: "ElNapster"
En valor viene "C:\Lista.net" o viene solo "\" ?

 :comp:
el valor llega asi a la base de datos "C:Lista.net" , a eso te refieres?  :unsure:

cuajoa

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
    • http://www.daskate.com.ar/cuajoa
Re: Problemas Con Caracter "\"
« Respuesta #3 en: Miércoles 4 de Julio de 2007, 01:45 »
0
Una recomendacion, la manera de realizar la cadena de coneccion es incorrecta, cuando los datos de las consultas son variables se utilizan parámetros, y quizá si utilizaras parámetros no ocurriría ese error.

Sino lo que podes utilizar son los càracteres de escàpe, probacon \\, porque en algunos lenguajes como c# o Actionscript  \' imprime la comilla, y si utilizas \\ imprimiría la barra.

Saludos
[size=109]Çu@Jö@[/size]
   

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Problemas Con Caracter "\"
« Respuesta #4 en: Miércoles 4 de Julio de 2007, 02:36 »
0
Cita de: "cuajoa"
Sino lo que podes utilizar son los càracteres de escàpe, probacon \\, porque en algunos lenguajes como c# o Actionscript  \' imprime la comilla, y si utilizas \\ imprimiría la barra.

Saludos
Eso es cierto, lo que pasa es que la barra es un caracter especial, y cuando uno quiere utilzarlo, hay que anterponerlo al comodin, que justamente es la barra.


BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

jandresaedo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Problemas Con Caracter "\"
« Respuesta #5 en: Miércoles 4 de Julio de 2007, 15:24 »
0
Cita de: "cuajoa"
Una recomendacion, la manera de realizar la cadena de coneccion es incorrecta, cuando los datos de las consultas son variables se utilizan parámetros, y quizá si utilizaras parámetros no ocurriría ese error.

Sino lo que podes utilizar son los càracteres de escàpe, probacon \\, porque en algunos lenguajes como c# o Actionscript  \' imprime la comilla, y si utilizas \\ imprimiría la barra.

Saludos
Podrias dar un ejemplo de una correcta cadena, ya que la mia no lo es y todavia no resuelvo el problema de agregar comillas dobles en la variable valor:
sql = "INSERT INTO " + Tabla + " (" + Campo + ") VALUES (" + Valor + ")"

Sin comillas ni simples ni dobles, no se ingresa ningun valor en la base datos,si le doy comillas simples al parecer(eso creo) la cadena no ingresa el backslash:
VALUES ('" + Valor + "')"
Entonces como hago para agregar comillas dobles donde estan las simples??, gracias.

cuajoa

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
    • http://www.daskate.com.ar/cuajoa
Re: Problemas Con Caracter "\"
« Respuesta #6 en: Miércoles 4 de Julio de 2007, 20:52 »
0
Proba con:

Código: Text
  1.  "INSERT INTO" & Tabla & "(" & Campo & ") VALUES  (" & valor & ")"
  2.  
No estoy seguro si se puede pasar como parámetro el nombre de un campo o de una tabla, pero si el de los valores.

La diferencia de esta cadena con la tuya es que el & es para la concatenacion de string y el + se utiliza para valores numericos.

Este es un ejemplo de como agregar datos mediante parámetros.

Código: Text
  1.  
  2.         Private cn As OleDbConnection
  3.         Private cmd As OleDbCommand
  4.         Private path As String = Application.StartupPath("Ubicacion de la DB")
  5.  
  6.         Private dr As OleDbDataReader
  7.  
  8.         Private Sub ConectaDB()
  9.             cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & path)
  10.         End Sub
  11.  
  12.         Public Sub InsertarDatos()
  13.             Dim i As Integer
  14.             Dim Tabla() As String = {"nombre1", "nombre2"}
  15.             'Declaro el Comando
  16.             Dim comandoInsert As String = "INSERT INTO MiTabla (Campo1,Campo2,CampoN) VALUES (@Valor1,@Valor2,@ValorN)"
  17.             'Agrego todos los parametros que necesito
  18.             Dim parametros() As String = {"@Valor1", "@Valor2", "@ValorN"}
  19.             'Agrego los valores para cada parámetro
  20.             Dim Valores() As String = {"aaa", "bbb", "ccc"}
  21.             'Establesco el tipo de dato de cada parámetro
  22.             Dim TipoDeDato() As OleDbType = {OleDbType.VarChar, OleDbType.VarChar, OleDbType.VarChar}
  23.  
  24.             ConectaDB()
  25.             'Toma el comando
  26.             cmd = New OleDbCommand(comandoInsert, cn)
  27.             'agrega los parametros
  28.             For i = 0 To parametros.Length - 1
  29.                 cmd.Parameters.Add(New OleDbParameter(parametros(i), TipoDeDato(i))).Value = valores(i)
  30.             Next
  31.             cn.Open()
  32.             'Ejecuto la operacion de inserción
  33.             cmd.ExecuteNonQuery()
  34.             cn.Close()
  35.         End Sub
  36.  
  37.  

espero que te sirva. Saludos
[size=109]Çu@Jö@[/size]
   

jandresaedo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Problemas Con Caracter "\"
« Respuesta #7 en: Jueves 5 de Julio de 2007, 17:27 »
0
Gracias a todos por las respuestas, ya me funciona, dejo la funcion de insert para una base de datos mysql:

Código: Text
  1.  
  2. ''' <summary>
  3.     ''' Metodo para agregar datos a una tabla.
  4.     ''' </summary>
  5.     ''' <param name="NombreTabla">Nombre de la tabla a la que se ingresaran datos.</param>
  6.     ''' <param name="NombreCampo">Nombre del campo en el cual se agregara el valor.</param>
  7.     ''' <param name="Valor">Variable que contiene el valor de lo que se va a ingresar a la tabla.</param>
  8.     ''' <remarks></remarks>
  9.     Public Sub Insertar(ByVal NombreTabla As String, ByVal NombreCampo As String, ByVal Valor As String)
  10.         Dim da As MySqlClient.MySqlDataAdapter = New MySqlClient.MySqlDataAdapter()
  11.         Dim cmd As New MySqlClient.MySqlCommand
  12.         Dim myTrans As MySqlClient.MySqlTransaction
  13.  
  14.         'para que el backslash ingrese hay que escaparlo con doble backslash, para eso hacemos un replace
  15.         Valor = Replace(Valor, "\", "\\")
  16.         'string del mysql
  17.         sql = "INSERT INTO " + NombreTabla + " (" + NombreCampo + ") VALUES ('" + Valor + "')"
  18.         myTrans = conn.BeginTransaction
  19.         cmd = New MySqlClient.MySqlCommand(sql, conn, myTrans)
  20.         cmd.BeginExecuteNonQuery()
  21.         da.InsertCommand = cmd
  22.         cmd.Parameters.Clear()
  23.         myTrans.Commit()
  24.  
  25.     End Sub
  26.  
  27.  

fanduaga

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Problemas Con Caracter "\"
« Respuesta #8 en: Jueves 26 de Julio de 2007, 06:41 »
0
PERO COMO HAGO ESE REPLACE EN JAVA??? he tenido el mismo problema pero mi aplicaciones esta en java+mysql.. Cuando creo un metodo no puedo comparar el "\" ya que lo toma como comentario...... help me!!!!

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Problemas Con Caracter "\"
« Respuesta #9 en: Jueves 26 de Julio de 2007, 12:00 »
0
Cita de: "fanduaga"
PERO COMO HAGO ESE REPLACE EN JAVA???

Pues el foro de Java es aca

http://foros.solocodigo.com/index.php?showforum=32  :rolleyes:

hay que respetar el orden del foro, y elegir el foro correctamente ;)

------------------

Ahora... Lo que puedes hacer es buscar una funcion que te devuelva el caracter apartir del codigo ascii

Me parece que es algo asi

Código: Text
  1. char[] Diagonal = (char) 92;
  2.  

y utilizas la variable para tus propositos


aunque deberia de haber una funcion para escapar cadenas que no :S  <_<  :huh:

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================