Visual Basic - problemas con caracteres en recordset

Life is soft - evento anual de software empresarial
 
Vista:

problemas con caracteres en recordset

Publicado por P.M (12 intervenciones) el 29/11/2002 17:06:48
No se como puedo solucionar un problema que se me produce cuando intento insertar
en el texto de busqueda de un recorset una comilla simple. Esto es, en la sentencia
siguiente:
set bd.openrecordset("select * from articulo where concepto like '" & text1 & "'")

imaginaos que text1=" 1' "
sabeis como solucionar mi problema con este tipo de caracteres en las cadenas?
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 con caracteres en recordset

Publicado por Rodolfo del Peru (454 intervenciones) el 29/11/2002 20:32:58
Usualmente se podria pasar ese string a una funcion que busque y elimine los caracteres no soportados como comilla simple o coma y te devuelva el string sin esos caracteres, pero si no es eso lo que quieres puedes hacer lo siguiente.

Creas un recordset vacio de la tabla a la que vas a insertar
luego procesas como este ejemplo

sql = "SELECT * FROM TABLA"
Set rs = New ADODB.Recordset
With rs
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockBatchOptimistic
.Open sql, cn
End With
If rsg.RecordCount > 0 Then 'Esto puede ser otro recordset o el grid
Do Until rsg.EOF 'Leo los registros a insertar
rs.AddNew 'Creo registro en blanco
rs!TIPDOC = rsg!TIPDOC 'Actualizo los campos del registro
rs!SERIE = rsg!SERIE
rs.Update 'Aplico los cambios

rsg.MoveNext 'Leo otro registro
Loop
End If
rs.UpdateBatch 'Se agregan los registros nuevos

Saludos desde Lima
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

RE:problemas con caracteres en recordset

Publicado por Manelnight (69 intervenciones) el 01/12/2002 04:28:48
Yo suelo hacer las consultas como tu las haces y si no cambias al metodo que utiliza Rodolfo del Perú, puedes hacer lo que hice yo que fue crear una funcion que sustituia el caracte ' por el caracter ~ .y luego otra que cuando mostraba los datos si encontraba el caracter ~ mostraba '.
Aui te lo pongo:

Public Function QuitarApos(texto As String) As String
Dim i As Integer
QuitarApos = ""
For i = 1 To Len(texto)
If Mid(texto, i, 1) = "'" Then
QuitarApos = QuitarApos + "~"
Else
QuitarApos = QuitarApos + Mid(texto, i, 1)
End If
Next i
End Function

Public Function PonerApos(texto As String) As String
Dim i As Integer
PonerApos = ""
For i = 1 To Len(texto)
If Mid(texto, i, 1) = "~" Then
PonerApos = PonerApos + "'"
Else
PonerApos = PonerApos + Mid(texto, i, 1)
End If
Next i
End Function

Espero haberte ayudado

Saludos
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