Visual Basic para Aplicaciones - Problemas INSERT INTO

Life is soft - evento anual de software empresarial
 
Vista:

Problemas INSERT INTO

Publicado por jose (17 intervenciones) el 02/11/2003 18:41:25
Tengo un problema al hacer una insert, paso a comentaro.

necesito meter en la base de datos ' (comilla simple) y no puedo ya que la interpreta como inicio/fin de cadena de txt, con lo cual me que sin poder hacer la insert. que puedo hacer

Ejemplo:
quiero insertar esto:
Select * from cllientes where nombre ='juan'

en una tabla que se llama consultas con los campos NomSQL y SQL:
la Insert que deberia de hacer es esta:

INSERT INTO Consultas (NonSQL,SQL) VALUES ('CONSULTA1','Select * from cllientes where nombre ='juan')

pero como los datos CONSULTA1, Select * from cllientes where nombre ='juan'

los cojo tal cual de un form pues lo que me queda al generar la cadena SQL es:
INSERT INTO Consultas (NonSQL,SQL) VALUES ('CONSULTA1','Select * from cllientes where nombre ='juan'')

lo cual como es normal da error de que esta mal construida la sentencia SQL

Que pouedo hacer

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas INSERT INTO

Publicado por Ismael (17 intervenciones) el 04/11/2003 16:08:04
Hola Jose, prueba a llamar a esta función:

'****************************************************************'
'Función para controlar la entrada de comilla simple en un campo '
'de texto y evitar asi error en SQL '
'****************************************************************'
Public Function fnc_Sustituir_Comillas(varCadena As Variant) As String
Const strInicial = "'"
Const strFinal = "''"
Dim intPos As Integer

If Not IsNull(varCadena) And Not IsNull(strInicial) Then
intPos = InStr(1, varCadena, strInicial)
Do While intPos <> 0
varCadena = Left(varCadena, intPos - 1) + strFinal + Mid(varCadena, intPos + 1)
intPos = InStr(intPos + Len(strFinal), varCadena, strInicial)
Loop

Else
varCadena = ""
End If
fnc_Sustituir_Comillas = varCadena
End Function

Tu insert quedaría algo así:
(Creáte dos variables para meter los textos que quieres guardar)

dim strTexto1 as string, strTexto2 as string
strTexto1 = fnc_Sustituir_Comillas('CONSULTA1')
strTexto2 = fnc_Sustituir_Comillas('Select * from cllientes where nombre ='juan')

INSERT INTO Consultas (NonSQL,SQL) VALUES (strTexto1, strTexto2)

Prueba a ver si te funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar