Error de sintaxis al ejecutar &

Saludos hectorcp, estoy haciendo lo siguiente:
cNombreArea=TRIM( thisform.text1.value) && texbox para el nombre del campo
ALTER TABLE areas ADD COLUMN &cNombrearea c(30) ------ esto funciono y luego
me dio el error de sintaxis, y el caso e que debo agregar los campos a la tabla desde el
formulario.
Tambien intente asi:
cNombreArea=TRIM( thisform.text1.value) + " c(30)"
a="ALTER TABLE areas ADD COLUMN " + cNombreArea
&a
Que creo lo vi así en alguna respuesta (no recuerdo la página) dada a un usuario.
Me funciono unas veces y luego me arrojo el mismo error. Gracias

1 Respuesta

Respuesta
1
En este código
cNombreArea=TRIM( thisform.text1.value) + " c(30)"
a="ALTER TABLE areas ADD COLUMN " + cNombreArea
&a
Antes de la ultima linea (&a) pon un messagebox(a) para ver si la cadena la esta enviando correctamente, lo cual seria el único problema ya que de ahí el código esta bien, hazlo así y me avisas como te va, suerte
Gracias por responder con prontitud. Seguí tu sugerencia y si aparece la cadena en el messagebox, y ello me hizo dar cuenta el porque me da ese error.
Si en el textbox tecleo una sola palabra funciona todo bien, pero cuando es una frase de 2 palabras o más es allí donde falla
Ejemplo: pongo en el textbox "TV" sin las comillas por supuesto, la cadena seria
ALTER TABLE areas ADD COLUMN TV c(30)
Pero si pongo "TV LCD" estaría intentando incluir un espacio en el nombre del campo lo cual no es permitido en vfp, así la cadena devuelta es
ALTER TABLE areas ADD COLUMN TV LCD c(30).... esa parte en italicas y negritas es el problema, asi que tendre que poner en el textbox TV_LCD.
Te estoy muy agradecido por haber arrojado luz ha mi problema, pero antes de finalizar y valorar, si me puedes ayudar para evitar el mensaje que trae por defecto vfp para el caso en que el usuario deje espacios entre palabras en el textbox. Saludos.
Pues para hacerlo te tocaría tratar el contenido del textbox, aunque bueno no tengo aquí vfp instalado pero creo que hay una función para reemplazar cierto carácter por otro carácter dentro de una cadena para así reemplazar los espacios por _ con lo cual TV LCD te quedaría como TV_LCD que si es un valor permitido, en caso de no haber la función te tocaría hacer un proceso más o menos así
cadena = alltrim(thisform.text1.value)
cadenafinal = ""
for i=1 to len(cadena)
caracter=substr(cadena,i,1)
if caracter = " "
caracter = "_"
end if
cadenafinal=cadenafinal+caracter
Endfor
Y trabajarías con la variable cadenafinal, obviamente todo esto para validar solo los espacios en blanco porque si ingresa algún otro carácter no válido también te marcaría error, bueno espero te haya sido de ayuda, suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas