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 de javaadicto
0
0
javaadicto, Bla bla bla soy excelente bla bla bla tengo varios titulos y se...
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.