Compactar BD Access

Hola javaadicto.
Necesito compactar una base de datos Access desde una aplicación java y no encuentro nada sobre cómo hacerlo, de hecho, ni siquiera se si se puede.
Gracias!

1 Respuesta

Respuesta
No tengo ni idea de como mirar la estructura de la BD, pero si se como conectarse sin usar ODBC, así
String sitio = "ruta de la BD EJ: C:/db1.mdb"
//Esta linea es para usar el jdbc por defecto
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url = "jdbc:odbc:Driver={Microsoft Access"+" Driver (*.mdb)};DBQ="+sitio;
Connection con = DriverManager.getConnection(url,"","");
Y listo ya esta conectado siempre y cuando la BD no tenga contraseña, ni nombres de usuario
espero haya sido de ayuda...
otra forma de conectarte a traves de un ODBC:
import java.sql.*;
public class ConectarBDD {
public ConectarBDD() {
String dataSourceName = "CentroEducativo";
String dbURL = "jdbc:odbc:" + dataSourceName;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(dbURL, "", "");
}
catch (Exception e) {
System.out.println("Error :" + e);
}
}
}
DATASOURCENAME debe ser el nombre del ODBC.
Ademas intenta investigar respecto del OpenOficce en su página www.openoficce.org
creo que este tiene la posibilidad de conexión.
Acá tengo como compactar una bd desde asp este lenguaje esta basado en c++ al igual que java espero que te sirva de algo, yo nunca he trabajado compactando bdd y tampoco me imagino el fin que esto tiene, pero si lo necesitas hacer creo que debieras echar un vistazo a las clases
que se encuentran en
java. Util.zip
aca va el codigo...
<%
Const Jet_Conn_Partial = "Provider=Microsoft.Jet.OLEDB.4.0; Data source="
Dim strDatabase, strFolder, strFileName
'#################################################
'# Edite las siguientes dos líneas
'# Defina el path completo de la base de datos
strFolder = "C:\Inetpub\wwwroot\hermes\hermes_db\"
'# Ponga el nombre de la Base de datos
strDatabase = "prueba2.mdb"
'# No hay mas que editar
'##################################################
Private Sub dbCompact(strDBFileName)
Dim SourceConn
Dim DestConn
Dim oJetEngine
Dim oFSO
SourceConn = Jet_Conn_Partial & strFolder & strDatabase
DestConn = Jet_Conn_Partial & strFolder & "Temp" & strDatabase
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oJetEngine = Server.CreateObject("JRO.JetEngine")
With oFSO
If Not .FileExists(strFolder & strDatabase) Then
Response.Write ("No encontrada: " & strFolder & strDatabase)
Stop
Else
If .FileExists(strFolder & "Temp" & strDatabase) Then
Response.Write ("Algo malo paso la ultima vez " _
& "Borrando la base de datos vieja... Por favor intenete de nuevo")
.DeleteFile (strFolder & "Temp" & strDatabase)
End If
End If
End With
With oJetEngine
.CompactDatabase SourceConn, DestConn
End With
oFSO.DeleteFile strFolder & strDatabase
oFSO.MoveFile strFolder & "Temp" _
& strDatabase, strFolder& strDatabase
Set oFSO = Nothing
Set oJetEngine = Nothing
End Sub
Private Sub dbList()
Dim oFolders
Set oFolders = Server.CreateObject("Scripting.FileSystemObject")
Response.Write ("<Select Name=""DBFileName"">")
For Each Item In oFolders.GetFolder(strFolder).Files
If LCase(Right(Item, 4)) = ".mdb" Then
Response.Write ("<Option Value=""" & Replace(Item, strFolder, "") _
& """>" & Replace(Item, strFolder, "") & "</Option>")
End If
Next
Response.Write ("</Select>")
Set oFolders = Nothing
End Sub
%>
<%
' Compacta la base de datos y le dice al usuario que la base de datos ha sido optimizada
Select Case Request.form("cmd")
Case "Compactar"
dbCompact Request.form("DBFileName")
Response.Write ("Database " & Request.form("DBFileName") & " ha sido Optimizada.")
End Select
%>
<p><font size="4">Compactar y reparar una base de datos</font></p>
<form method="POST" action="" id=form1 name=form1>
<p><%dbList%><input type="submit" value="Compactar" name="cmd"></p>
</form>
Creo que la respuesta no era para esta pregunta. Yo no preguntaba nada acerca de la estructura, sino como compactar una BD Access desde una aplicación Java.
Gracias de nuevo
Gracias por tu interés, pero lo necesito desde Java, desde ASP o similar si se, pero lo que estoy utilizando es una aplicación Java que maneja una BD Access.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas