the latest squirrel sql client tries to execute: select tbl.* from table tbl jdbc2 will need to support aliasing in order for it to work. however, the original jdbc driver does still work with squirrel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
patch #1002180 is a change to core, right now the core is a straight port of 0.5, however, 0.6 is due to be released soon which I'm sure fixes a number of things. I don't have a test case for this problem :( so i'll need your help. Is this patch applied in current cvs of the c code? if not why not? can we get it to be applied? once it is (or now if it's already there) then when 0.6 core is ported to java we can inherit the fix. I'm REALLY trying to be a port not a fork :)
Once 0.6 is 'official' i'm planning on porting it to java to use in place of 0.5
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
pkilite works (http://pklite.sourceforge.net/installation.php) for query execution, schema browser fails due to
MDBConnection.getCatalog not implemented
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Great progress with all the various clients! We're going to need a wiki page pretty soon to keep an up-to-date status. :-)
Regarding patch #1002180, I believe it was the inspiration for the Aug. 4th check-in to core. I'm not set up yet to test against the C version, but I'll upload a test file that doesn't work with the java libmdb. I'll go ahead a create a new bug report.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It looks current cvs (c side) has added support for database writes (yeah!), when this is ported to the java side then it will be possible to get inserts / updates / deletes(? is that there) to work
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
To use a database coming from somewhere other than a file:
1. implement mdbtools.publicapi.RandomAccess
2. create an instance of an object that implements mdbtools.publicapi.RandomAccess.
2.a for an in memory database you can use: mdbtools.examples.MemoryRandomAccess
3. get a jdbc connection:
byte[] ba;
// populate ba with the bytes of the mdb file
mdbtools.publicapi.RandomAccess ra = new
mdbtools.examples.MemoryRandomAccess(ba);
java.util.Properties p = new java.util.Properties();
p.put("RandomAccess",ra);
conn = DriverManager.getConnection("jdbc:mdbtools:",p);
4. from here on simply use the jdbc api
:)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
hi! since your last message i don't have news about mdb tools for java. i'm very interested in that write/delete operations and i'd like to know if you have an ideia about when this update will be avaliable.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Igor,
My current thinking is to build the libmdb java code from the C code which will keep the two in sync. Currently I've got mdb-ver to compile for either C or Java, however, I'm putting in way too much time right now with work and school to work on this project much right now, in fact probably not till may when school is out again. Which is actually when I started the 0.5 port a full year ago!
If you really wish to help I can get you setup with what I have and let you have a go at it :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi!
I found a couple of problems with j2se1.3, in this version the interface Savepoint does not exist in java.sql (but as long as I dont need to perform rollbacks its ok for my application).The other problem is that in j2se1.3 the method Calendar.setTimeInMillis(long t) is "protected" so I think that a solution could be using instead "setTime(new java.util.Date(t))" in mdbtools.libmdb.Data
I hope this helps.
Great work!!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi again!!
Now I have a different problem which only occurs with some *.mdb files (I have been able to open and read others).This is the stack
java.lang.RuntimeException: offset 29505589248 is beyond EOF
at mdbtools.libmdb.file._mdb_read_pg(file.java:96)
at mdbtools.libmdb.file.mdb_read_alt_pg(file.java:196)
at mdbtools.libmdb.Table.mdb_read_table(Table.java:36)
at mdbtools.libmdb.Catalog.mdb_read_catalog(Catalog.java:31)
at mdbtools.jdbc.Driver.connect(Driver.java:37)
at java.sql.DriverManager.getConnection(DriverManager.java:543)
at java.sql.DriverManager.getConnection(DriverManager.java:216)
at javi.pruebas.PruebaAccessMdbTools.main(PruebaAccessMdbTools.java:19)
Any clues?
Thank you!!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have uploaded patch 1046883. It provides column names for queries like "select table1.column1, table1.column2 from table1".
Additional changes are needed to allow "select column1 from table1" (unqualified columns) to work.
patch's 1046857 & 1046883 have been merged and commited
Thanks again James
added code to support: select mycolumn from mytable
the latest squirrel sql client tries to execute: select tbl.* from table tbl jdbc2 will need to support aliasing in order for it to work. however, the original jdbc driver does still work with squirrel
the latest iSQL-Viewer(isql.sourceforge.net) is now working for executing sql.
It seems that bug #690867 is also present in the java port. Do you think that patch #1002180 might solve this problem?
Yet another JDBC client to try out:
http://sourceforge.net/projects/basicquery/
patch #1002180 is a change to core, right now the core is a straight port of 0.5, however, 0.6 is due to be released soon which I'm sure fixes a number of things. I don't have a test case for this problem :( so i'll need your help. Is this patch applied in current cvs of the c code? if not why not? can we get it to be applied? once it is (or now if it's already there) then when 0.6 core is ported to java we can inherit the fix. I'm REALLY trying to be a port not a fork :)
Once 0.6 is 'official' i'm planning on porting it to java to use in place of 0.5
basicquery seems to be VERY basic,however, it works! all it needed was a few more jdbc methods to be implemented which I just checked in.
sqladmin works for executing queries, but the schema browser doesn't work :( sqladmin gives up since DatabaseMetaData.getSchemas is not implemented
sqladmin = http://sqladmin.sourceforge.net/
adit works (http://adit.sourceforge.net/)
pkilite works (http://pklite.sourceforge.net/installation.php) for query execution, schema browser fails due to
MDBConnection.getCatalog not implemented
we now have quite a few different clients working :)
I just checked in changes that properly support prepared statements.
ie: when using prepared statements
the sql is only parsed once
sql like: select * from a where id = ? now works
Great progress with all the various clients! We're going to need a wiki page pretty soon to keep an up-to-date status. :-)
Regarding patch #1002180, I believe it was the inspiration for the Aug. 4th check-in to core. I'm not set up yet to test against the C version, but I'll upload a test file that doesn't work with the java libmdb. I'll go ahead a create a new bug report.
It looks current cvs (c side) has added support for database writes (yeah!), when this is ported to the java side then it will be possible to get inserts / updates / deletes(? is that there) to work
Ever wanted to use an .mdb file that was not on the local filesystem well now you can!
uses:
a client uploads an mdb file to a servlet who then extracts the data. once extracted the mdb file is not needed so why write to disk?
a client / server can be writen to proxy all mdb reads across a network
cache the database so it's not opened read closed all the time
others?
To use a database coming from somewhere other than a file:
1. implement mdbtools.publicapi.RandomAccess
2. create an instance of an object that implements mdbtools.publicapi.RandomAccess.
2.a for an in memory database you can use: mdbtools.examples.MemoryRandomAccess
3. get a jdbc connection:
byte[] ba;
// populate ba with the bytes of the mdb file
mdbtools.publicapi.RandomAccess ra = new
mdbtools.examples.MemoryRandomAccess(ba);
java.util.Properties p = new java.util.Properties();
p.put("RandomAccess",ra);
conn = DriverManager.getConnection("jdbc:mdbtools:",p);
4. from here on simply use the jdbc api
:)
I checked in my latest changes,
broke out aggregate and non aggregate functions
new functions: concat, sum
hi! since your last message i don't have news about mdb tools for java. i'm very interested in that write/delete operations and i'd like to know if you have an ideia about when this update will be avaliable.
Igor,
My current thinking is to build the libmdb java code from the C code which will keep the two in sync. Currently I've got mdb-ver to compile for either C or Java, however, I'm putting in way too much time right now with work and school to work on this project much right now, in fact probably not till may when school is out again. Which is actually when I started the 0.5 port a full year ago!
If you really wish to help I can get you setup with what I have and let you have a go at it :)
Hi!
I found a couple of problems with j2se1.3, in this version the interface Savepoint does not exist in java.sql (but as long as I dont need to perform rollbacks its ok for my application).The other problem is that in j2se1.3 the method Calendar.setTimeInMillis(long t) is "protected" so I think that a solution could be using instead "setTime(new java.util.Date(t))" in mdbtools.libmdb.Data
I hope this helps.
Great work!!
Hi again!!
Now I have a different problem which only occurs with some *.mdb files (I have been able to open and read others).This is the stack
java.lang.RuntimeException: offset 29505589248 is beyond EOF
at mdbtools.libmdb.file._mdb_read_pg(file.java:96)
at mdbtools.libmdb.file.mdb_read_alt_pg(file.java:196)
at mdbtools.libmdb.Table.mdb_read_table(Table.java:36)
at mdbtools.libmdb.Catalog.mdb_read_catalog(Catalog.java:31)
at mdbtools.jdbc.Driver.connect(Driver.java:37)
at java.sql.DriverManager.getConnection(DriverManager.java:543)
at java.sql.DriverManager.getConnection(DriverManager.java:216)
at javi.pruebas.PruebaAccessMdbTools.main(PruebaAccessMdbTools.java:19)
Any clues?
Thank you!!