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

Optimizar tablas desde asp?

Estas en el tema de Optimizar tablas desde asp? en el foro de ASP Clásico en Foros del Web. Estaba mirando Mysql para una web de php.. y desde el mysql he optimizado una tabla y me he fijado en la sentencia SQL.. y ...
  #1 (permalink)  
Antiguo 03/08/2005, 03:16
Avatar de deccweb  
Fecha de Ingreso: febrero-2003
Ubicación: Mataro
Mensajes: 365
Antigüedad: 22 años, 2 meses
Puntos: 0
Optimizar tablas desde asp?

Estaba mirando Mysql para una web de php.. y desde el mysql he optimizado una tabla y me he fijado en la sentencia SQL.. y era esta "OPTIMIZE TABLE usuarios" y he pensado que en asp y con una bbdd access también funcionaria pero no es así. Hay alguna forma de hacerlo? Dejo aquí el código que utilizado y su correspondiente error.

Codigo:
<%

Set oConn = Server.CreateObject ("ADODB.Connection")
Set RS = Server.CreateObject ("ADODB.RecordSet")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("usuarios.mdb")
sql = "OPTIMIZE TABLE usuarios "

RS.Open sql, oConn
RS.Close
oConn.Close
Set RS = nothing
Set oConn = nothing
%>

Error:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

/public/noticias/optimizartabla.asp, line 14
__________________
Calle17.net

edgargranados.es
  #2 (permalink)  
Antiguo 03/08/2005, 04:17
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 6 meses
Puntos: 16
puede que access no soporte esa sentencia... pero MSSQL puede que si.... en realidad no se muy bien pero creo que es asi... de todas formas seguro que ya llega alguien que te aclare un poco mas
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 03/08/2005, 09:34
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 7 meses
Puntos: 4
entiendo por optimizar lo mismo que compactar. Si es así les dejo este codigo que saque de SOLO ASP:

<%
Const DriverConexion = "Provider=Microsoft.Jet.OLEDB.4.0; Data source="
Dim strDatabase, strFolder, strFileName
'#################################################
'# Edite las siguientes dos líneas
'# Defina el path de la base de datos. Si desea hacerlo completo, puede hacerlo
StrCarpeta = server.mappath("./db")
'################################################# #

'Compacta la base de datos
Private Sub dbCompact(StrBaseDeDatos)
if right(StrCarpeta,1) <> "\" then StrCarpeta = StrCarpeta & "\"
Dim SourceConn, DestConn, oJetEngine, oFSO
SourceConn = DriverConexion & StrCarpeta & StrBaseDeDatos
DestConn = DriverConexion & StrCarpeta & "Temp" & StrBaseDeDatos
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oJetEngine = Server.CreateObject("JRO.JetEngine")

If Not oFSO.FileExists(StrCarpeta & StrBaseDeDatos) Then
Response.Write ("Base no encontrada: " & StrCarpeta & StrBaseDeDatos)
else
If oFSO.FileExists(StrCarpeta & "Temp" & StrBaseDeDatos) Then
Response.Write ("Error. Intente Nuevamente.")
oFSO.DeleteFile (StrCarpeta & "Temp" & StrBaseDeDatos)
else
oJetEngine.CompactDatabase SourceConn, DestConn
oFSO.DeleteFile StrCarpeta & StrBaseDeDatos
oFSO.MoveFile StrCarpeta & "Temp"& StrBaseDeDatos, StrCarpeta& StrBaseDeDatos
Response.Write ("* La base de datos <B'>" & Request.form("DBFileName") & "</B'> fue compactada con exito.")
End If
End If

Set oFSO = Nothing
Set oJetEngine = Nothing
End Sub

'Pinta la lista de bases en ese directorio
Private Sub dbList
Dim oFolders, i
i = 0
Set oFolders = Server.CreateObject("Scripting.FileSystemObject")
Response.Write ("<SELECT name='DBFileName''>")
For Each Item In oFolders.GetFolder(StrCarpeta).Files
If LCase(Right(Item, 4)) = ".mdb" Then
'corrijo el path, y saco la "\"
item = Replace(lcase(Item), lcase(StrCarpeta), "")
item = Replace(Item, "\", "")
Response.Write ("<OPTION value='" & item &"'>" & item & "</OPTION'>")
i = i+1
End If
Next
Response.Write ("</SELECT'>")
Response.Write ("<BR'><BR'>En la carpeta <b'>"& StrCarpeta &"</b'> hay <b'>"& i &"</b'> bases de datos Access.")
Set oFolders = Nothing
End Sub

Select Case Request.form("compactar")
Case "Compactar"
dbCompact Request.form("DBFileName")
End Select
%>

<p align="center"><b>Seleccionar la base para compactar de la lista</b>
<form method="POST" action="" id=form1 name=form1>
<%dbList%><BR><BR>
<input type="submit" value="Compactar" name="compactar">
</form></p>


espero que te sirva.
saludos
__________________
by Capitán Buscapina
.
  #4 (permalink)  
Antiguo 03/08/2005, 10:44
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 6 meses
Puntos: 16
no se pero optimizar noc reo que sea lo mismo que compactar... por lo menos yo no lo entiendo como lo mismo... optimizar eso ordenarla de cierta forma que su rendimiento mejor... y compactar es reducir su tamaño... no veo relacion saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #5 (permalink)  
Antiguo 03/08/2005, 11:46
Avatar de deccweb  
Fecha de Ingreso: febrero-2003
Ubicación: Mataro
Mensajes: 365
Antigüedad: 22 años, 2 meses
Puntos: 0
Es que en el acces pone "Compactar y reparar".. q supongo q sera algo parecido a optimizar. Gracias Cap.Buscapina. Ya lo probare q estoy en una PDA
__________________
Calle17.net

edgargranados.es
  #6 (permalink)  
Antiguo 03/08/2005, 16:12
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 7 meses
Puntos: 4
hola.
Si bien entiendo como y por que diferencias los dos terminos (metallik), un forma de optimizarla , es compactándola, aunque no dudo que ademas también se la pude optimiazar aun mas. De todas formas es solo un juego de palabras y supuse que en realidad lo que buscaba deccweb era un script para compactarla.

Si no es lo que deccweb buscapa, tal vez le sirva a otro forista.
saludos

PD: el script no lo probé, pero cuando leí el post me acorde y lo puse.
__________________
by Capitán Buscapina
.
  #7 (permalink)  
Antiguo 03/08/2005, 19:06
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 6 meses
Puntos: 16
bueno en realidad despues de un analisis mas en profundidad sobre el tema de compactacion v/s aptimizacion... (devatiendo con un compañero) llegamos a la conclusion de que compactar es parte de la optimizacion pero este toma "conceptos" mucho mas importantes... como vendría siendo la adecada estructuracion e interelaciones de la base de datos y logicamente el uso correcto de las setencias SQL... saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #8 (permalink)  
Antiguo 04/08/2005, 09:36
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 7 meses
Puntos: 4
claro, estamos de acuerdo, lo que desde un principio sospeche era que necesitaba un script para compactar ya que, hacer un codigo para optimizar el diagrama de sus tablas , conformar correctamente las sentencias sql,y otras yerbas mas, no es cosa simple(para no decir imposible).
Saludos
__________________
by Capitán Buscapina
.
  #9 (permalink)  
Antiguo 04/08/2005, 11:51
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 6 meses
Puntos: 16
jajajaja en todo caso... optimizar al 100% una aplicacion no es del todo simple como parece... saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
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 11:57.