Foros del Web » Programando para Internet » ASP Clásico »

Problema con ALTER TABLE

Estas en el tema de Problema con ALTER TABLE en el foro de ASP Clásico en Foros del Web. a ver mentes brillantes, la cuestion es asi tengo una pagina asp se conecta a una bd de access la cual tiene una tabla con ...
  #1 (permalink)  
Antiguo 31/03/2009, 06:44
 
Fecha de Ingreso: abril-2006
Mensajes: 5
Antigüedad: 19 años
Puntos: 1
Problema con ALTER TABLE

a ver mentes brillantes, la cuestion es asi tengo una pagina asp se conecta a una bd de access la cual tiene una tabla con columnas, al cumplirse cierta condicion se tiene que renombrar una columna determinada y lo hago de la siguiente manera:

...
Columna = RecordsetCab.Fields.Item("titulo").Value

'------------- Para Modificar -----------------------
If (CStr(Request.Form("Modificar")) <> "") Then


SQLAlter = "ALTER TABLE tabla1 CHANGE " & Replace(Columna, " ", "_") & " " & Replace(Request.Form("Titulo"), " ", "_") & " TEXT(100)"
Set ComSQLALTER = server.CreateObject("ADODB.Connection")
ComSQLALTER.open MM_circulo_STRING
ComSQLALTER.execute(SQLALTER)

end if
...

si le hago un response.write al string SQLAlter y suponiendo que la tabla se llame tabla1 y la columna se llame columna1 y quiero cambiarle el nombre por columna2 me imprime esto

ALTER TABLE tabla1 CHANGE columna1 columna2 TEXT(100)

y cdo lo ejecuto me sale el siguiente error:

Microsoft JET Database Engine (0x80040E14)
Error de sintaxis en la instrucción ALTER TABLE.
/editacolumna.asp, línea 35

claro la linea 35 es la del string SQLAlter, pero no se cual es el error ya que googleando encontre que para modificar el nombre de la columna es como lo estoy haciendo, esta bien asi??? o es de otra manera??? gracias

P/D: uso replace por si ponen el nombre nuevo de la columna con espacios
  #2 (permalink)  
Antiguo 31/03/2009, 07:20
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Problema con ALTER TABLE

Hola

No lo recuerdo pero creo no se puede usar Alter Table en Access.

EDITO: Se me ha ocurrido esto

Código asp:
Ver original
  1. con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("./tubd.mdb")&";"
  2.  
  3. ' Nombre de la tabla
  4. tabla = "xxx"
  5.  
  6. ' Nombre de la columna
  7. actual_columna = "xxx"
  8. nueva_columna = "yyy"
  9.  
  10. set conn = CreateObject("ADODB.Connection")
  11. conn.open con
  12. set adox = CreateObject("ADOX.Catalog")
  13. adox.ActiveConnection = conn
  14.  
  15. ' Renombra la columna
  16. adox.Tables(tabla).Columns(actual_columna).Name = nueva_columna
  17. adox.Tables.Refresh
  18.  
  19. Set adox = nothing
  20. conn.close
  21. Set conn = nothing

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 31/03/2009 a las 07:50
  #3 (permalink)  
Antiguo 31/03/2009, 08:05
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 17 años, 3 meses
Puntos: 57
Respuesta: Problema con ALTER TABLE

En la ayuda de Access 2003 (tal vez sea diferente en otras versiones), en la sintaxis de la sentencia ALTER TABLE ni siquiera hay una opcion CHANGE. Segun la ayuda, con esta sentencia unicamente puedes agregar campos, cambiar el tipo de datos y eliminar campos
  #4 (permalink)  
Antiguo 31/03/2009, 08:40
 
Fecha de Ingreso: abril-2006
Mensajes: 5
Antigüedad: 19 años
Puntos: 1
Respuesta: Problema con ALTER TABLE

es cierto posman, he revisado la ayuda (pues uso access 2003) y no aparece esa opcion a pesar de que en internet figura asi, entonces alguien sabe como cambiar el nombre a una columna? gracias a los que respondieron hasta ahora
  #5 (permalink)  
Antiguo 31/03/2009, 17:27
 
Fecha de Ingreso: abril-2006
Mensajes: 5
Antigüedad: 19 años
Puntos: 1
Respuesta: Problema con ALTER TABLE

Listo ya lo solucione, lo que posteo Adler ya lo habia visto en otro lado pero por alguna razon no me funcionaba pero al probarlo de nuevo funciono perfecto. ya lo pueden cerrar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:14.