29/09/2008, 16:40
|
| | Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 16 años, 1 mes Puntos: 0 | |
Respuesta: Insertar campo memo en foxpro con asp man
Que tal, saludos a todos.
Bueno sobre la forma de meter mas de 255 caracteres a un campo Memo, en el caso de hacerlo desde Visual Basic, es de la siguiente forma:
Hay que concatenar la cadena de los primeros 255 caracteres y despues el resto de la cadena es decir.
si CadenaX = 300 caracteres
hay que meterlos asi.....
CampoMemo = 254 caracteres + 46 caracteres.
Para que me entiendan voy a hacer un ejemplo con SQL
INSERT INTO Tabla (Nombre, Observ) VALUES ('Juan', '[cadenaX]')
El chiste es separar [cadenaX] asi:
INSERT INTO Tabla (Nombre, Observ) VALUES ('Juan', 'left(cadenax,254)'+'right(cadenax,46)')
fijense que hay una concatenacion '+' despues de los 254 caracteres dentro de un mismo campo. Pues esa es la que sirve para meter la cadena completa.
Les pondre un ejemplo de un codigo y observen:
Private sub Insertar ()
Com.CommandText = "INSERT INTO DATOS (NOMBRE,OBSERV) VALUES ('" & UCase(Trim(txt_Nombre.Text)) & "','" & QuitaCarac(UCase(Trim(txt_Observ.Text))) & "')"
Set RS = Com.Execute
End Sub
Ahora una rutina para preparar la cadena y dejarla lista para insertar es la sig:
Private Function QuitaCarac(Cadena As String) As String
'QUITA LOS RETORNOS DE CARRO PARA ALMACENAR EN CAMPO, PREPARA UNA CADENA DE MAS DE 254 CARACTERES PARA INSERTAR A CAMPO MEMO
Dim X As Integer
Dim Cont As Integer
Dim Texto As String
Dim Car As String
Dim N As Integer
Con = Len(Cadena)
Texto = ""
X = 1
N = 0
Do
N = N + 1
If N >= 254 Then
N = 0
Car = "' + '"
Texto = Texto + Car
End If
Car = Mid(Cadena, X, 1)
If Car = Chr(10) Then
Car = Chr(13)
ElseIf Car = "'" Or Car = "+" Then
GoTo 1
End If
Texto = Texto + Car
1 X = X + 1
Loop Until X > Con
QuitaCarac = Texto
End Function
Esta funcion lo que hara sera separar en bloques de 254 caracteres la cadena
CadenaNueva= Bloque254 '+' Bloque254 '+' ... '+' BloqueRestante
Espero que les sirva de algo, o que les ayude a resolver algunas dudas.
Ojala que ahora alguien pueda averiguar por que al usar el comando UPDATE, siguiendo el mismo procedimiento, solo deja actualizar 508 caracteres y mas de 508 se bloquea la aplicación sin mostrar un aviso de error ni nada.
Saludos |