Autor Tema: Solucion para a las dobles comillas o tildes  (Leído 10992 veces)

0 Usuarios y 1 Visitante están viendo este tema.

wolf_kof

  • Visitante
Re:Solucion para a las dobles comillas o tildes
« Respuesta #15 en: Junio 11, 2014, 11:45:51 am »
Leandro te voy a explicar la sentencia de SQL para ingresar datos es esta

Código: (vb) [Seleccionar]
Dim sSQL As String
sSQL = "INSERT INTO Tabla (Campo1, Campo2, Campo3) VALUES ('Maria', 'Pedro', 'Juan')"

Y es literalmente lo que haces cuando construyes tu cadena de esta forma:

Código: (vb) [Seleccionar]
Dim sSQL As String
sSQL = "INSERT INTO Tabla (Campo1, Campo2, Campo3) VALUES ('"& text1.text &"', '"& text2.text &"', '"& text3.text &"')"

de estas dos formas si algunos de los campos text tiene una ' u otro campo, tendras problema por que lo estás trabajando todo a base de texto, por eso lo haces con el commandtext (Comando de Texto)

Mientras si creas un procedimiento almacenado en tu base de datos en este caso access, con una consulta de insersión creo que se llama

ya la cosa cambia por que lo que haces es hacer un enlace del procediiento almacenado dandole los datos y el procedimiento ingresa el registro

Como lo explica Waldo

Código: (vb) [Seleccionar]
       Dim cmd As ADODB.Command
       
        Set cmd = New ADODB.Command
        cmd.ActiveConnection = cnn
        cmd.CommandType = adCmdStoredProc 'Aqui le decimos al comando que vamos a enlazar un procedimiento almacenado
        cmd.CommandText = "sysLog_ADD" 'Aqui hacemos mensión de como se llama el procedimiento almacenado (nada mas el nombre)

        cmd.Parameters.Append cmd.CreateParameter("@Campo1", adVarChar, adParamInput, , 1, text1.text)
        cmd.Parameters.Append cmd.CreateParameter("@Campo2", adVarChar, adParamInput, , 1, text2.text)
        cmd.Parameters.Append cmd.CreateParameter("@Campo3", adVarChar, adParamInput, 50, text3.text)
cmd.Execute

De esta forma no importa que contenga el text1.text se va a guardar dentro del @Campo1 y este dentro del procedimiento a su vez lo va a guardar en Campo1 dentro de tu tablal.

Te dejo el link que aunque es con vb.net pero hay ves la forma de hacer procedimientos almacenados con access:

http://wilfredo-patricio.blogspot.com/2008/07/procedimientos-almacenados-en-access-y.html?showComment=1359210191451

Y este para que aprendas de los procedimientos almacenados y como manipularlos desde vb6

http://many-how.com/articulos/computadoras/programacion-ordenadores/visual-basics/article-725.html

Waldo

  • Gigabyte
  • ****
  • Mensajes: 264
  • Reputación: +22/-0
    • Ver Perfil
Re:Solucion para a las dobles comillas o tildes
« Respuesta #16 en: Junio 13, 2014, 02:32:35 pm »
una cosa que me pasó, no se si tiene mucho que ver con este tema, pero como justo hablamos de los parametros del command, lo comento...
Tengo una base SQL con un campo "real" (numeros decimales, similar a float) segun busque el "equivalente" en ADO, para declarar el parametro es adSingle, tenia que llamar a un proc que hacia un INSERT, lo hacia sin devolver error, pero cuando miraba el numero con decimales, insertado en la base, no se veia como tenia que verse, se veia con notacion cientifica, con exponencial, algo rarisimo.
Despues de dar muuuchas vueltas me doy cuenta que el numero que le estaba pasando desde el VB como parametro, era decimal, pero separado con un punto ( . ) y.... justamente mi config regional el punto es separador de miles, no separador decimal, el decimal es la coma, asi que ojo con eso!

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Solucion para a las dobles comillas o tildes
« Respuesta #17 en: Junio 14, 2014, 04:17:22 am »
Ahora si muchos mas claro, todo nuevo para mi esto. gracias por la info, voy a ver si ya lo voy implementando.