The idea behind my app is to banish client's direct access to my database (which is in .mdb format) by downloading the whole .mdb file to the client side , recording changes done by them and uploading those changes once per day for each client. The issue i have is while using ucanaccess it seems that it loads the whole database each time getDatabase2() is called. in the console this what i get infinite times until the app has loaded. (And that will take alot of time). Is there anyway to make ucanaccess do the bridging stuff only (just the transaction )? or maybe i am using the wrong approche?? The .mdb file is 50Mo size with at max 80-100k entries. I am using windows XP, Eclipse, Java 7. the code for getDataBase is as follows
private static Connection getDatabase2() throws Exception{
String url="jdbc:ucanaccess:////Jv1kbafap001/teams/Medic/database.mdb;memory=false";
String user="admin";
String pass="";
return DriverManager.getConnection(url,user,pass);
}
In the next ucanaccess version (2.0.9.1), the loading time (the time of the first connection) will be significantly reduced specifically for the case of memory=false. To support a partial loading is out of my plans because I think there is already a solution for this: you have just to use another "filter" mdb which only points to the tables you need for your transaction, linking them as external resouces (in other words, they must be used as linked tables). Notice that you can use the remap connection parameter to override the original external database path.