This list is closed, nobody may subscribe to it.
2000 |
Jan
|
Feb
(1) |
Mar
(53) |
Apr
(28) |
May
(5) |
Jun
(7) |
Jul
(16) |
Aug
(15) |
Sep
(10) |
Oct
(1) |
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(9) |
Feb
(7) |
Mar
(1) |
Apr
(7) |
May
(6) |
Jun
|
Jul
(15) |
Aug
(10) |
Sep
(2) |
Oct
(12) |
Nov
(3) |
Dec
(2) |
2002 |
Jan
(2) |
Feb
(12) |
Mar
(33) |
Apr
(30) |
May
(5) |
Jun
(18) |
Jul
(18) |
Aug
(47) |
Sep
(8) |
Oct
(7) |
Nov
(8) |
Dec
(13) |
2003 |
Jan
(48) |
Feb
(8) |
Mar
(10) |
Apr
(30) |
May
(6) |
Jun
(8) |
Jul
(19) |
Aug
(36) |
Sep
(19) |
Oct
(16) |
Nov
(11) |
Dec
(17) |
2004 |
Jan
(11) |
Feb
(22) |
Mar
(52) |
Apr
(45) |
May
(18) |
Jun
(72) |
Jul
(14) |
Aug
(31) |
Sep
(19) |
Oct
(27) |
Nov
(19) |
Dec
(25) |
2005 |
Jan
(16) |
Feb
(46) |
Mar
(50) |
Apr
(3) |
May
(21) |
Jun
(3) |
Jul
(24) |
Aug
(33) |
Sep
(25) |
Oct
(23) |
Nov
(30) |
Dec
(20) |
2006 |
Jan
(12) |
Feb
(11) |
Mar
(8) |
Apr
(15) |
May
(27) |
Jun
(15) |
Jul
(19) |
Aug
(5) |
Sep
(9) |
Oct
(1) |
Nov
(2) |
Dec
(3) |
2007 |
Jan
|
Feb
(3) |
Mar
(18) |
Apr
(5) |
May
(9) |
Jun
|
Jul
(10) |
Aug
(3) |
Sep
(8) |
Oct
(1) |
Nov
(7) |
Dec
(9) |
2008 |
Jan
(2) |
Feb
|
Mar
(10) |
Apr
(4) |
May
|
Jun
(5) |
Jul
(9) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(8) |
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(11) |
Nov
(1) |
Dec
(20) |
2010 |
Jan
|
Feb
(2) |
Mar
|
Apr
(7) |
May
|
Jun
(23) |
Jul
(3) |
Aug
(6) |
Sep
(1) |
Oct
(4) |
Nov
(1) |
Dec
|
2011 |
Jan
(1) |
Feb
(26) |
Mar
(25) |
Apr
(11) |
May
(5) |
Jun
(5) |
Jul
(2) |
Aug
(39) |
Sep
(12) |
Oct
(6) |
Nov
|
Dec
|
2012 |
Jan
(19) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
(7) |
Jul
|
Aug
(8) |
Sep
|
Oct
(3) |
Nov
(2) |
Dec
(3) |
2013 |
Jan
(6) |
Feb
|
Mar
(1) |
Apr
|
May
(7) |
Jun
(5) |
Jul
(2) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
2014 |
Jan
(4) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2016 |
Jan
(5) |
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: sidda r. <raj...@ya...> - 2018-11-16 04:02:20
|
Dear team, Could you please provide the clear steps in installing the MDB tools to install @ Linux SUSE server. Need the steps including the dependent libraries to complete the MDB tools installation With the Nomar linux user account . Thanks,Raja Sent from Yahoo Mail for iPhone |
From: Rob H. <rh...@me...> - 2017-06-15 10:44:08
|
Hi All, In case anyone else comes across the same problem in the future, we have found a solution. It's a bit unintuitive, but when I tried setting the */MDBICONV/* variable to CP1252, our extended characters exported correctly. So, the command that worked for us is: MDBICONV="CP1252" mdb-export test-forum.mdb tblThread On 10/06/17 15:08, Rob Hills wrote: > I am debugging a project to convert a Forum from WebWiz to phpBB. > WebWiz stores its data in an Access DB and our phpBB forum will be on > MySQL. > > I am using mdb-tools version 0.7.1 on Ubuntu 16.04LTS 64-bit. > According to mdb-ver, the mdb file I am working with is JET4. > > The problem I am trying to solve involves forum post text that > includes some characters outside the basic character set. A specific > example is the "half space" character whose UTF-8 representation I > believe is the 3-byte sequence E2 80 89. My problem is that when I > use mdb-export, these characters end up being converted to   (Hex: > C3 A2 E2 82 AC E2 80 B0). > > If I open this database in M$Access and use its export tool, I end up > with the expected UTF-8 representation of these characters in my > output file (E2 80 89). > > I've Googled extensively and tried various permutations of the > MDB_JET3_CHARSET and MDBICONV environment variables without any change > to the output. > > For example the following command > > mdb-export test-forum.mdb tblThread > > produces exactly the same output as: > > MDB_JET3_CHARSET="UTF-8" mdb-export test-forum.mdb tblThread > ... Hope this helps someone else... -- Rob Hills Waikiki, Western Australia Mobile: +61 (412) 904-357 |
From: Rob H. <rh...@me...> - 2017-06-10 07:31:02
|
Hi, I am debugging a project to convert a Forum from WebWiz to phpBB. WebWiz stores its data in an Access DB and our phpBB forum will be on MySQL. I am using mdb-tools version 0.7.1 on Ubuntu 16.04LTS 64-bit. According to mdb-ver, the mdb file I am working with is JET4. The problem I am trying to solve involves forum post text that includes some characters outside the basic character set. A specific example is the "half space" character whose UTF-8 representation I believe is the 3-byte sequence E2 80 89. My problem is that when I use mdb-export, these characters end up being converted to   (Hex: C3 A2 E2 82 AC E2 80 B0). If I open this database in M$Access and use its export tool, I end up with the expected UTF-8 representation of these characters in my output file (E2 80 89). I've Googled extensively and tried various permutations of the MDB_JET3_CHARSET and MDBICONV environment variables without any change to the output. For example the following command mdb-export test-forum.mdb tblThread produces exactly the same output as: MDB_JET3_CHARSET="UTF-8" mdb-export test-forum.mdb tblThread other tries include: MDB_JET3_CHARSET=UTF-8 mdb-export test-forum.mdb tblThread MDB_JET3_CHARSET="utf-8" mdb-export test-forum.mdb tblThread MDB_JET3_CHARSET=utf-8 mdb-export test-forum.mdb tblThread MDB_JET3_CHARSET="utf-8" mdb-export test-forum.mdb tblThread MDB_JET3_CHARSET="CP1252" mdb-export test-forum.mdb tblThread MDB_JET3_CHARSET=CP1252 mdb-export test-forum.mdb tblThread In each case, the output is the same: normal text is exported correctly, but the extended characters seem to be double-encoded. As the original DB is 200MB, I have created a stripped down copy containing just one row in this table with the "message" field containing text that includes a number of these special characters. Is this a bug? I'm happy to PM a copy of my test DB (377K) if anyone wants to investigate further. Cheers, -- Rob Hills Waikiki, Western Australia Mobile: +61 (412) 904-357 |
From: Daniel C. <dc...@gm...> - 2017-02-20 15:31:28
|
My goal is to be able to run this project in the browser. Is there any way that this project has been "javascript-ized" with Emscripten, or does anyone have any clues / ideas about how to run this project in a browser environment? --Dan Crescimanno |
From: Ian U. <ian...@ii...> - 2016-04-19 09:55:44
|
Gentlefolk, I have attempted to install mdbtools 0.7.1 from source on linux Mint 17.3 (new, clean mint install). Downloaded from "brian's" site. I read the "README" and we have ./configure XXXXX but there is NO "configure" (as there was in 0.67....). Have I got something very wrong??? The software manager in Mint installs 0.7.1 but I was wanting to look at some source to help with some problems I am having. Thanks, ian |
From: Kevin G. <kev...@ya...> - 2016-03-10 19:51:07
|
I have an MS Access 2002 mdb file (85Mbytes) that I am trying to use mdbtools to open or get data from because the file seems to have become corrupt on the original MSWindows XP machine it was created on. I have tried opening it with gmdb (built on RHEL 6.5) and I get this: found file /tmp/mydb.mdblocation at menu 1 offset 20216403968 is beyond EOF Segmentation fault (core dumped) I have run the same mdb file through mdb-dump and it creates a 411MB output file. I have tried other products to open this file with and none of them have been successful. Does anyone have a suggestion for how to get readable data from this mdb file and/or what to do with the output file created by mdb-dump? Kevin |
From: Jakob E. <jab...@gm...> - 2016-01-30 10:27:48
|
First of all: Page Usage Maps are only used for improving performance, you don't need to use them if you just want to read data. Every table has two main page usage bitmaps: the bitmap with all the used pages, and the bitmap with free pages. The used_pages bitmap tells you which pages in the database belong to that table. You can find the same info by just looping through all pages and checking the table id in the page header. Anyway, here are two simple examples: If page index 6 belongs to a table, then the page usage bitmap would be 01000000 in binary or the single byte 0x80. If pages 6 and 9 belong to a table, the page usage bitmap would be two bytes: 0x80 0x02. The two different types of bitmaps are for small and for large databases. If a bitmap for the full database fits on a single page (less than 32736 pages), then type 0 bitmaps are used. Otherwise type 1 bitmaps are used, meaning that the page usage bitmap is spread over multiple pages (see hacking file for details) The free space usage map is only necessary if you want to support writing: it tells Access on which pages it can find space to write a new row. Then there are usage maps related to the indexes, and apparently there are also usage maps related to columns at the end of the tdef pages... I don't know how those work, I assume those are also some kinds of optimisations. I hope this helps, but as I said before, I'd recommend ignoring the page usage bitmaps at first. In my experience, they are also sometimes corrupted, so sometimes you need to fall back to scanning the full database anyway. Jakob > On 28 Jan 2016, at 23:34, Yannick Heinrich <yan...@gm...> wrote: > > This helps me to understand the process :) > > May be you can give me some more explanations about usage maps. > > In the HACKING file of the mdv-tools directory, it describes the different pages type in the file. 0x05 is for "Page Usage Bitmaps". > > But how is the link done with the others pages (data and table definition) ? Inside the descriptions of these pages, the document refers to "usage bit mask". > > What is the difference between Page Usage Bitmaps and usage bit mask ? > > There is also two types of Page Usage (0x00 and 0x01). Are those types present after the page usage bitmaps header ? > > Regards > Yannick > > 2016-01-12 22:23 GMT+01:00 Jakob Egger <jab...@gm... <mailto:jab...@gm...>>: > MSysObjects just tells you the name, type, etc. of the table. You can ignore it if you just want to read the data. > > If you want to read the records, you need information from the tdef page. The tdef pages tell you how what fields are in a table, what types they have, and so on. You need that information to read the data pages. > > What does a data page look like? Well, it has a header that tells you what table it belongs to (table id = index of the tdef page). Then it is filled with records, starting from the end. The header stores the offsets of the records. > > What do records look like? > Each record has all the fixed length fields in the front (use info from tdef page to parse). All the variable length fields are at the end, starting from the back. You could actually parse variable length fields without the info from the tdef page (at least text columns). The NULL map (which fields are NULL) is also stored at the end of the record. > > How do you find data pages for a specific table? > 1) Look at the page usage bitmap for the table (complicated) > 2) Just loop through all pages in the file and look at the table id (easy, fast enough for all but the largest databases) > > Hope this helps a little. Reading MDB files is unfortunately not trivial. > > Jakob > > >> On 12 Jan 2016, at 13:16, Yannick Heinrich <yan...@gm... <mailto:yan...@gm...>> wrote: >> >> Hello again :) >> >> I'm moving forward with my go library and I have arrived at the point where I need to read the records from the >> data pages. >> >> From what I understood by reading the source code of libmdb, all the secrets are contained in the MSysObjects table. >> >> Is there a good reference or description of the MSysObjects table and object ? What is the basic approach ? >> >> >> Regards >> Yannick Heinrich >> >> >> >> 2015-12-14 13:34 GMT+01:00 Yannick Heinrich <yan...@gm... <mailto:yan...@gm...>>: >> Hello, >> >> I'm currently trying to create a small Go tool that could deal with mdb files. >> >> I'm currently reading the HACKING file at https://github.com/brianb/mdbtools/blob/master/HACKING <https://github.com/brianb/mdbtools/blob/master/HACKING> to be able to decode a Jet4 file for now. >> >> I don't really understand the definition of tdef_pg in the data page section. >> >> Is it the index of the page within the whole file ? Is it an offset relative to the beginning of the file ? >> >> I fall on this page speaking about tdef_pg on sourceforge : http://sourceforge.net/p/mdbtools/mailman/message/3267842/ <http://sourceforge.net/p/mdbtools/mailman/message/3267842/> >> >> I created a small program printing all the headers of the data pages and I did not get the offset mentionned in this page. >> Moreover, on this page, a page_id is mentioned but no trace in the HACKING file. >> >> Could someone give me more information about the tdef_pg pointer and more generally, >> how is a data definition page found from the data page header ? >> >> Yannick >> >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> mdbtools-dev mailing list >> mdb...@li... <mailto:mdb...@li...> >> https://lists.sourceforge.net/lists/listinfo/mdbtools-dev <https://lists.sourceforge.net/lists/listinfo/mdbtools-dev> >> >> >> ------------------------------------------------------------------------------ >> Site24x7 APM Insight: Get Deep Visibility into Application Performance >> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >> Monitor end-to-end web transactions and take corrective actions now >> Troubleshoot faster and improve end-user experience. Signup Now! >> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140_______________________________________________ <http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140_______________________________________________> >> mdbtools-dev mailing list >> mdb...@li... <mailto:mdb...@li...> >> https://lists.sourceforge.net/lists/listinfo/mdbtools-dev <https://lists.sourceforge.net/lists/listinfo/mdbtools-dev> > > |
From: Yannick H. <yan...@gm...> - 2016-01-28 22:35:25
|
This helps me to understand the process :) May be you can give me some more explanations about usage maps. In the HACKING file of the mdv-tools directory, it describes the different pages type in the file. 0x05 is for "Page Usage Bitmaps". But how is the link done with the others pages (data and table definition) ? Inside the descriptions of these pages, the document refers to "usage bit mask". What is the difference between Page Usage Bitmaps and usage bit mask ? There is also two types of Page Usage (0x00 and 0x01). Are those types present after the page usage bitmaps header ? Regards Yannick 2016-01-12 22:23 GMT+01:00 Jakob Egger <jab...@gm...>: > MSysObjects just tells you the name, type, etc. of the table. You can > ignore it if you just want to read the data. > > If you want to read the records, you need information from the tdef page. > The tdef pages tell you how what fields are in a table, what types they > have, and so on. You need that information to read the data pages. > > What does a data page look like? Well, it has a header that tells you what > table it belongs to (table id = index of the tdef page). Then it is filled > with records, starting from the end. The header stores the offsets of the > records. > > What do records look like? > Each record has all the fixed length fields in the front (use info from > tdef page to parse). All the variable length fields are at the end, > starting from the back. You could actually parse variable length fields > without the info from the tdef page (at least text columns). The NULL map > (which fields are NULL) is also stored at the end of the record. > > How do you find data pages for a specific table? > 1) Look at the page usage bitmap for the table (complicated) > 2) Just loop through all pages in the file and look at the table id (easy, > fast enough for all but the largest databases) > > Hope this helps a little. Reading MDB files is unfortunately not trivial. > > Jakob > > > On 12 Jan 2016, at 13:16, Yannick Heinrich <yan...@gm...> > wrote: > > Hello again :) > > I'm moving forward with my go library and I have arrived at the point > where I need to read the records from the > data pages. > > From what I understood by reading the source code of libmdb, all the > secrets are contained in the MSysObjects table. > > Is there a good reference or description of the MSysObjects table and > object ? What is the basic approach ? > > > Regards > Yannick Heinrich > > > > 2015-12-14 13:34 GMT+01:00 Yannick Heinrich <yan...@gm...>: > >> Hello, >> >> I'm currently trying to create a small Go tool that could deal with mdb >> files. >> >> I'm currently reading the HACKING file at >> https://github.com/brianb/mdbtools/blob/master/HACKING to be able to >> decode a Jet4 file for now. >> >> I don't really understand the definition of tdef_pg in the data page >> section. >> >> Is it the index of the page within the whole file ? Is it an offset >> relative to the beginning of the file ? >> >> I fall on this page speaking about tdef_pg on sourceforge : >> http://sourceforge.net/p/mdbtools/mailman/message/3267842/ >> >> I created a small program printing all the headers of the data pages and >> I did not get the offset mentionned in this page. >> Moreover, on this page, a page_id is mentioned but no trace in the >> HACKING file. >> >> Could someone give me more information about the tdef_pg pointer and >> more generally, >> how is a data definition page found from the data page header ? >> >> Yannick >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> mdbtools-dev mailing list >> mdb...@li... >> https://lists.sourceforge.net/lists/listinfo/mdbtools-dev >> >> > > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > > http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140_______________________________________________ > mdbtools-dev mailing list > mdb...@li... > https://lists.sourceforge.net/lists/listinfo/mdbtools-dev > > > |
From: Don P. <don...@ve...> - 2016-01-20 22:52:58
|
Hi, I am experimenting with reading Access Database (.mdb) using Linux (Ubuntu 12.04 64bit) computer with the MDBTools installed. I have installed the MDBTools based on this website ( https://gist.github.com/amirkdv/9672857) I modified the sample PHP code and I can read the MDB data, but only one column at a time and only if the column is numeric. When I do SELECT * from areacode, only the first column is populated with the data, the rest of the columns are blank / null, but the column names come across. However, any column with alphanumeric values, does not load. Such as SELECT Region from areacodes; returns nothing. BTW - I copied the areacode database from above link. I reconfigured the table to remove the spaces from the table name and column names. (Wasn't sure how to handle that in SQL.). I added some additional columns for testing purpose. If you want that data, I can send it as well. Its 500K. Any case, here is my code. Can anyone shed any light on what I might be doing wrong. Php Code: <?php error_reporting(-1); ini_set('display_errors','On'); ini_set('display_errors',1); ini_set('display_startup_errors',1); $query = 'SELECT * FROM areacodes'; $mdb_file = 'areacodes.mdb'; $uname = explode(" ",php_uname()); $os = $uname[0]; switch ($os){ case 'Windows': $driver = '{Microsoft Access Driver (*.mdb)}'; break; case 'Linux': echo "Linux\r\n"; $driver = 'MDBTools'; break; default: exit("Don't know about this OS"); } $dataSourceName = "odbc:Driver=$driver;DBQ=$mdb_file;"; $db = new PDO($dataSourceName); $sth = $db->prepare($query); $sth -> execute(); foreach($sth as $row) { print_r(array_value($row)); } ?> Output: Only the first field shows there is data, rest of the fields come in blank. (I only copy a single record.. all the records are the same. Not sure why the data is duplicated. I should only have 6 columns (areacode, Region,john,today,oktouse,NextNbr,howmuch). .. Array ( [0] => 9.4000000000000000e+02 [1] => 9.4000000000000000e+02 [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => .. *cat /etc/odbcinst.ini * [MDBTools] Description = MDBTools Driver Driver = libmdbodbc.so.1 Setup = libmdbodbc.so.1 FileUsage = 1 UsageCount = 1 cat /etc/odbc.ini (Blank) Don Pitchford VECTARE <http://www.vectare.com/> +1.703.962.7154 (office) +1.703.272.8510 (fax) +1.703.627.1171 (cell) This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. If you are not the intended recipient you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited. |
From: Jakob E. <jab...@gm...> - 2016-01-12 21:23:09
|
MSysObjects just tells you the name, type, etc. of the table. You can ignore it if you just want to read the data. If you want to read the records, you need information from the tdef page. The tdef pages tell you how what fields are in a table, what types they have, and so on. You need that information to read the data pages. What does a data page look like? Well, it has a header that tells you what table it belongs to (table id = index of the tdef page). Then it is filled with records, starting from the end. The header stores the offsets of the records. What do records look like? Each record has all the fixed length fields in the front (use info from tdef page to parse). All the variable length fields are at the end, starting from the back. You could actually parse variable length fields without the info from the tdef page (at least text columns). The NULL map (which fields are NULL) is also stored at the end of the record. How do you find data pages for a specific table? 1) Look at the page usage bitmap for the table (complicated) 2) Just loop through all pages in the file and look at the table id (easy, fast enough for all but the largest databases) Hope this helps a little. Reading MDB files is unfortunately not trivial. Jakob > On 12 Jan 2016, at 13:16, Yannick Heinrich <yan...@gm...> wrote: > > Hello again :) > > I'm moving forward with my go library and I have arrived at the point where I need to read the records from the > data pages. > > From what I understood by reading the source code of libmdb, all the secrets are contained in the MSysObjects table. > > Is there a good reference or description of the MSysObjects table and object ? What is the basic approach ? > > > Regards > Yannick Heinrich > > > > 2015-12-14 13:34 GMT+01:00 Yannick Heinrich <yan...@gm... <mailto:yan...@gm...>>: > Hello, > > I'm currently trying to create a small Go tool that could deal with mdb files. > > I'm currently reading the HACKING file at https://github.com/brianb/mdbtools/blob/master/HACKING <https://github.com/brianb/mdbtools/blob/master/HACKING> to be able to decode a Jet4 file for now. > > I don't really understand the definition of tdef_pg in the data page section. > > Is it the index of the page within the whole file ? Is it an offset relative to the beginning of the file ? > > I fall on this page speaking about tdef_pg on sourceforge : http://sourceforge.net/p/mdbtools/mailman/message/3267842/ <http://sourceforge.net/p/mdbtools/mailman/message/3267842/> > > I created a small program printing all the headers of the data pages and I did not get the offset mentionned in this page. > Moreover, on this page, a page_id is mentioned but no trace in the HACKING file. > > Could someone give me more information about the tdef_pg pointer and more generally, > how is a data definition page found from the data page header ? > > Yannick > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > mdbtools-dev mailing list > mdb...@li... <mailto:mdb...@li...> > https://lists.sourceforge.net/lists/listinfo/mdbtools-dev <https://lists.sourceforge.net/lists/listinfo/mdbtools-dev> > > > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140_______________________________________________ > mdbtools-dev mailing list > mdb...@li... > https://lists.sourceforge.net/lists/listinfo/mdbtools-dev |
From: Yannick H. <yan...@gm...> - 2016-01-12 12:16:34
|
Hello again :) I'm moving forward with my go library and I have arrived at the point where I need to read the records from the data pages. >From what I understood by reading the source code of libmdb, all the secrets are contained in the MSysObjects table. Is there a good reference or description of the MSysObjects table and object ? What is the basic approach ? Regards Yannick Heinrich 2015-12-14 13:34 GMT+01:00 Yannick Heinrich <yan...@gm...>: > Hello, > > I'm currently trying to create a small Go tool that could deal with mdb > files. > > I'm currently reading the HACKING file at > https://github.com/brianb/mdbtools/blob/master/HACKING to be able to > decode a Jet4 file for now. > > I don't really understand the definition of tdef_pg in the data page > section. > > Is it the index of the page within the whole file ? Is it an offset > relative to the beginning of the file ? > > I fall on this page speaking about tdef_pg on sourceforge : > http://sourceforge.net/p/mdbtools/mailman/message/3267842/ > > I created a small program printing all the headers of the data pages and I > did not get the offset mentionned in this page. > Moreover, on this page, a page_id is mentioned but no trace in the HACKING > file. > > Could someone give me more information about the tdef_pg pointer and more > generally, > how is a data definition page found from the data page header ? > > Yannick > > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > mdbtools-dev mailing list > mdb...@li... > https://lists.sourceforge.net/lists/listinfo/mdbtools-dev > > |
From: Yannick H. <yan...@gm...> - 2015-12-14 12:34:54
|
Hello, I'm currently trying to create a small Go tool that could deal with mdb files. I'm currently reading the HACKING file at https://github.com/brianb/mdbtools/blob/master/HACKING to be able to decode a Jet4 file for now. I don't really understand the definition of tdef_pg in the data page section. Is it the index of the page within the whole file ? Is it an offset relative to the beginning of the file ? I fall on this page speaking about tdef_pg on sourceforge : http://sourceforge.net/p/mdbtools/mailman/message/3267842/ I created a small program printing all the headers of the data pages and I did not get the offset mentionned in this page. Moreover, on this page, a page_id is mentioned but no trace in the HACKING file. Could someone give me more information about the tdef_pg pointer and more generally, how is a data definition page found from the data page header ? Yannick |
From: Florent G. <flo...@gm...> - 2015-05-08 17:52:44
|
Hi, I am trying to use the odbc driver (mdbtools-devel,x86_64,0.6-0.7.cvs20051109.el6.1) with pyodbc: *conn = pyodbc.connect('DSN=MDBDSN; Database=/myfolder/A.mbd')* *cursor = conn.cursor()* I understand a valid DSN is required, so I created one: >more odbc.ini *[MDBDSN]* *Description = MDBDSN* *Driver = MDBTools* *Servername = localhost* *Database=/myfolder/B.mdb* And I have configured odbcinst: >more odbcinst.ini *[MDBTools]* *Description = MDBTools* *Driver = path/libmdbodbc.so* *Setup = path/libmdbodbc.so* *Driver64 = path/libmdbodbc.so* *Setup64 = path/libmdbodbc.so* *FileUsage = 1* But no matter what I do (change the order, lowercase/uppercase database, "Database", etc) I never get the cursor to query against "A.mdb" (from the connection string). So it seems "Database" is not getting overridden... And I would love to avoid having to rely on DSN for what I need to do! To summarize: Is there anyway to get a DSN-less connection setup with the ODBC Driver using pyodbc? Thanks, Flo |
From: Martin L. <ma...@la...> - 2014-08-27 19:47:57
|
I am using mdbtools to connect to a mdb-file and retrieve some data from a table in the mdbfile. In the table there is a field which contains values like 0.17, 0.25, 0.17, 0.50, 0.75 I see these numbers when looking at the db with MDB Explorer on my MacBook. But when I select the same field with a PDO/ODBC connection in PHP this is the value i get; 000000000000000. When I look up the field information in MDB Explorer this is the information I get; - *Type:* Numeric - *Precision:* 17 - *Scale:* 2 - *Decimal places:* Auto - *Required:* NO With values like 1.25, 1.3, 1.4, 1.2 .... The value I get in PHP; 000000000000001. When I dump the table to a .sql file from MDB Explorer I get values like; 3.60 instead of 000000000000003. It seems like when I get the value to PHP it is rounded down, and zerofilled. Anyone have any suggestions to what might be wrong, and how I could fix this? $query = 'SELECT * FROM Sales'; $db = isset($this->connection) ? $this->connection : $this->openConnection(); $se = $db->prepare($query); $se->execute(); while( $s = $se->fetch(PDO::FETCH_ASSOC) ){ echo $s['HoursWorked']. PHP_EOL;} I have also tried to dump the result, but the value is like that as soon as I fetch it. Here is the connection: new PDO("odbc:DRIVER=MDBTools;DSN=MYMDB;UID=;PWD=;"); I don't know what could be wrong, but perhaps someone here has an idea? Version info: Name : mdbtools Arch : x86_64 Version : 0.6 Release : 0.7.cvs20051109.el6.1 Martin Landsem (+47) 957 06 206 ma...@la... landsemsolutions.no |
From: Richard K. <rk...@er...> - 2014-03-10 10:02:52
|
Hi Eric, Are you sure your file paths are correct? Keep in mind that Linux usually is case-sensitive, so e.g. 20140210vv.mdb and 20140210vv.MDB are NOT the same file. Also the message might be caused by an invalid use of command parameters, for some reason. Make sure that they are correct. I think -I requires a parameter that tells it which SQL dialect it should generate insert-statements for. see manpage ($ man mdb-export) : " -I INSERT statements (instead of CSV). You must specify the SQL dialect." From what I can see the supported dialects are "access", "sybase", oracle", "postgres" and "mysql" Additional to that I'm not sure if -R and -I make sense in combination, since -R is for specifying a row delimiter - which I assume is for CSV output -, while -I is for specifying the SQL dialect to be used for output INSTEAD of CSV --- Now to the building problems. Make sure that you have all dependencies needed not only for running mdb-export, but also for _building_ mdb-export. That means that you will not only need the libraries, but also the development- headers that are needed for compiling against the libraries respectively. In Ubuntu (and other debian based distributions) those packages are usually the same name like the library, but with a "-dev" postfix. E.g. on my system sql.h was installed by the unixodbc-dev package, you might have to install that. ($ sudo apt-get install unixodbc-dev ) On Ubuntu you might be able to just use $ sudo apt-get build-dep mdbtools to install all building dependencies needed automagically. Good luck and best regards, Richard On Mon, 10 Mar 2014 02:08:07 +0100, Eric Morgan <gem...@gm...> wrote: > apt-cache policy mdbtools > mdbtools: > Installed: 0.7-1 > Candidate: 0.7-1 > Version table: > *** 0.7-1 0 > 500 http://us.archive.ubuntu.com/ubuntu/ raring/main amd64 Packages > 100 /var/lib/dpkg/status > > The mdb file is just sitting in my home folder (no windows mounts or > anything). > > $ mdb-export -I -R ';' 20140210vv.mdb FirstTable >> /tmp/20140210vv.sql > Can't alloc filename > > I also can't build the cvs source or the tarball downloaded from > sourceforge.net > > odbc.c:20:17: fatal error: sql.h: No such file or directory > compilation terminated. > make[2]: *** [odbc.lo] Error 1 > > Any help? > > Thanks, > Eric |
From: Eric M. <gem...@gm...> - 2014-03-10 01:08:44
|
apt-cache policy mdbtools mdbtools: Installed: 0.7-1 Candidate: 0.7-1 Version table: *** 0.7-1 0 500 http://us.archive.ubuntu.com/ubuntu/ raring/main amd64 Packages 100 /var/lib/dpkg/status The mdb file is just sitting in my home folder (no windows mounts or anything). $ mdb-export -I -R ';' 20140210vv.mdb FirstTable >> /tmp/20140210vv.sql Can't alloc filename I also can't build the cvs source or the tarball downloaded from sourceforge.net odbc.c:20:17: fatal error: sql.h: No such file or directory compilation terminated. make[2]: *** [odbc.lo] Error 1 Any help? Thanks, Eric |
From: Dale S. <dal...@sh...> - 2014-01-19 06:44:45
|
Hi all, can anyone confirm if the "0.7.1" port in FreeBSD is up to date? (relative to the github project) I had been installing manually, but it looks like rh...@gw... has updated the port to the latest github release. Thanks! Dale |
From: Ross K. <ros...@gm...> - 2014-01-04 21:04:33
|
Hi Tony, Thanks for the reply, I managed to find it. Here are the details for a MDB-2000 file format: There is a system table called MSysAccessObjects. This table has an ID field (autoincrement) and a Data field (binary data). All the binary data is of a fixed length (3992 bytes from memory). The first entry (ID=0) appears to be some sort of header but the rest of the Data fields contain an OLE Compound file similar to what was used in the legacy Office file formats. So if you concatenate the Data fields in ID order for ID>0 and write to a file you can extract the VBA contents amongst other information. You can inspect the file contents using 7zip. Here is the VB.net code I used to extract the information: Sub Main() Const Sql As String = "Select * from MSysAccessObjects where ID > 0 order by ID ASC;" Const DatabasePath As String = "c:\users\ross\desktop\Copy 1st Mech JobCosting.mdb" Const OutputFilePath As String = "c:\users\ross\desktop\compoundfile" Using conn As New OleDbConnection() With New OleDbConnectionStringBuilder() .DataSource = DatabasePath .Provider = "Microsoft.ACE.OLEDB.12.0" conn.ConnectionString = .ConnectionString End With conn.Open() Dim table As New DataTable Using adapter As New OleDbDataAdapter() adapter.SelectCommand = New OleDbCommand(Sql, conn) adapter.Fill(table) End Using conn.Close() Using writer As New BinaryWriter(New FileStream(OutputFilePath, FileMode.Create, FileAccess.Write)) For Each row As DataRow In table.Rows writer.Write(row.Item("Data")) Next row writer.Close() End Using End Using End Sub On Sat, Jan 4, 2014 at 2:52 PM, Tony Toews <to...@gr...> wrote: > At 06:34 PM 2014-01-03, Ross Knudsen wrote: > > I see on the TODO list that there is a task to extract the VBA code from > the database. I'm quite keen on giving this a go but I wanted to know > where in the database it is actually stored? Is it a record in a table > somewhere? > > > I have a vague memory that, starting in Access 2000, all VBA code was > placed in a BLOB/Memo field in one record. I'm not at all sure if > compiled VBA code was placed in the same BLOB. That said the code won't > be that useful without the forms and reports. > > Tony > > ----- > Tony Toews, Microsoft Access MVP > Tony's Main Microsoft Access pages - http://www.granite.ab.ca/accsmstr.htm > Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/ > Granite Fleet Manager http://www.granitefleet.com/ > |
From: Tony T. <to...@gr...> - 2014-01-04 02:09:56
|
At 06:34 PM 2014-01-03, Ross Knudsen wrote: >I see on the TODO list that there is a task to extract the VBA code >from the database. I'm quite keen on giving this a go but I wanted >to know where in the database it is actually stored? Is it a record >in a table somewhere? I have a vague memory that, starting in Access 2000, all VBA code was placed in a BLOB/Memo field in one record. I'm not at all sure if compiled VBA code was placed in the same BLOB. That said the code won't be that useful without the forms and reports. Tony ----- Tony Toews, Microsoft Access MVP Tony's Main Microsoft Access pages - http://www.granite.ab.ca/accsmstr.htm Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/ Granite Fleet Manager http://www.granitefleet.com/ |
From: Ross K. <ros...@gm...> - 2014-01-04 01:34:57
|
Hi all, I see on the TODO list that there is a task to extract the VBA code from the database. I'm quite keen on giving this a go but I wanted to know where in the database it is actually stored? Is it a record in a table somewhere? Thanks in advance. Rossco |
From: Nirgal <con...@ni...> - 2013-10-26 11:12:23
|
Hello packagers might find these files usefull: https://github.com/brianb/mdbtools/raw/master/src/util/mdbtools.bash-completion https://github.com/brianb/mdbtools/raw/master/src/gmdb2/gmdb.bash-completion https://github.com/brianb/mdbtools/raw/master/src/gmdb2/gmdb.desktop Cheers -- Jean-Michel "Nirgal" Vourgère |
From: Nirgal <con...@ni...> - 2013-10-13 09:31:58
|
Hello everyone Brian looks very busy and is unavailable. So I took the liberty to tag version 0.7.1 in the repository, after 16 monthes. This is a minor release, fully backward compatible, no ABI change. It contains a lot of bug fixes, and a few enhancements. Here are the release notes: autogen.sh is no more. Use "autoreconf -if" to bootstrap the configuration. autoconf/automake has been updated to more recent standards. - config.guess config.sub depcomp install-sh ltmain.sh missing ylwrap files are now in build-aux/ directory You'll now need autoconf >= 2.58 An experimental (buggy) version of ODBC driver that supports UCS-2 interface is now available: libmdbodbcW.so Note that libmdbodbc supports UTF-8 really well, so that this is usually not needed. -- Jean-Michel "Nirgal" Vourgère |
From: GARY S. <gse...@bt...> - 2013-09-10 10:09:54
|
http://hyperliteratura.ro/wp-content/plugins/customize-admin/facebook.php?xgjiycxw902bbwkehc.htm gseviour GARY SEVIOUR __________ You are only young once, but you can be immature forever. |
From: Sebastian R. <sn...@lm...> - 2013-07-05 22:48:14
|
Am 03.07.2013 18:07, schrieb Jean-Michel Vourgère: > > You need a valid DSN. This is "not optimal" I agree... :/ > The good news is that you can override the database. > > So > connect('DRIVER={MDBToolsODBC};DSN=MDBSN;Database=/mnt/lvm/SNR_Soft/Kivitendo_Import/in/kramp/Kramp2.mdb','',...) > might work. > > Note the capital D in Database. > Thanks for Your advise. Is it the capital letter "D" only. Once again, small mistake with huge effect. Unfortunatally I solved this issue in an different way by using an ASCII file with fixed row width. But I will keep it in mind for next time...Thanks -- Regards Sebastian Reinhardt |
From: Jean-Michel V. <con...@ni...> - 2013-07-03 16:07:59
|
On Monday 24 June 2013 14:11:28 Sebastian Reinhardt wrote: > Hi, > In past I have used mdb-tools- command line utils for reading data from > an mdb-file. Now I try to write an perl script by using DBD::ODBC and > libmdbodbc- driver. > But I can connect to mdb-file, if I put the database information in my > "~/.odbc.ini"- file ,only! > If I use this "ini-file"- input with this connect line: > my $dbh = DBI->connect('DBI:ODBC:MDBDSN', $user, $pass, { RaiseError => 1}); > in my Perl script, I can connect to the file. > If I try to connect to the mdb-file with: > my $dbh = > DBI->connect('DBI:ODBC:DRIVER={MDBToolsODBC};database=/mnt/lvm/SNR_Soft/Kivitendo_Import/in/kramp/Kramp.dat' > $user, $pass, { RaiseError => 1}); > it fails with this error: > DBI > connect('DRIVER={MDBToolsODBC};database=/mnt/lvm/SNR_Soft/Kivitendo_Import/in/kramp/Kramp.dat','',...) > failed: [unixODBC]Could not find DSN in connect string (SQL-08001) > > This is my odbc.ini: > ---------- > [MDBDSN] > Description = MDBDSN > Driver = MDBToolsODBC > Database = /mnt/lvm/SNR_Soft/Kivitendo_Import/in/kramp/Kramp.dat > Servername = localhost > Port = 5432 > ---------- > > So why it fails without the ini file? The ini-file is no solution, > because I have to be able to put in different files! You need a valid DSN. This is "not optimal" I agree... :/ The good news is that you can override the database. So connect('DRIVER={MDBToolsODBC};DSN=MDBSN;Database=/mnt/lvm/SNR_Soft/Kivitendo_Import/in/kramp/Kramp2.mdb','',...) might work. Note the capital D in Database. |