Table of Contents
DBDesigner on Debian
Outflank the problem! Alternative solution, use wine! In fact, I'd like to recommand strongly to use wine and the Windows installer. It will save you a lot of time with the configuration and the user interface will be nicer:-)
I have put some details on my blog: http://21croissants.blogspot.com/2006/12/dbdesigner-4-on-ubuntu-dbdesigner-4-on.html
I collect some Links, great work here!
Update by Danilo Cesar
I think that some people will have some problems with new windows under wine that dont get focus. I solve this problem with devilspie and a little script under it. You can find it on: http://www.danilocesar.com/blog/2007/01/13/dbdesigner-wine-e-janelas-que-nao-ganham-foco.
(Unfortunately, Portuguese only)
From Martin
I can confirm that - I went both ways, and Wine one (actually, I used CrossOver for Linux) is much easier and has better results. Martin ===
From Marcio
Come here: http://fabforce.net/ Marcio ===
WORK IN PROGRESS
Get the .tgz from the download site.
It needs a shared library from Kylix:
libborqt-6.9-qt2.3.so: cannot open shared object file: No such file or directory
Get it from the Kylix Libraries page:
$> wget http://heanet.dl.sourceforge.net/sourceforge/kylixlibs/kylixlibs3-borqt_3.0-1_i386.deb #> dpkg -i kylixlibs3-borqt_3.0-1_i386.deb
Then make a symbolic link to the lib and do ldconfig:
#> cd /usr/lib #> ln -s kylix3/libborqt-6.9-qt2.3.so #> ldconfig
It also needs a c++ shared library:
$>./startdbd (nothing happens) $>cat ~/.DBDesigner4/DBD4.log $>libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory $>apt-get libstdc++2.10-glibc2.2
(Running Debian sarge, I found that this was sufficient to get the application started (this is DBDesigner 4.0.5.4 Beta). (I didn't even need the libborqt libraries installed. Still trying to figure out why…)
With regards to DBDesigner4.0.5.4.tar.gz on Ubuntu Breezy (close enough to Debian ) and after following the instructions above I still got the “file not found” error for libborqt-6.9-qt2.3.so
. To resolve this I ran “strace /opt/DBDesigner4/DBDesigner4
” and saw that it was trying to open up libborqt-6.9-qt2.3.so
in a variety of locations under /lib
. I made a symbolic link to one of those locations:
#> ln -s /usr/lib/kylix3/libborqt-6.9.0-qt2.3.so /lib/libborqt-6.9-qt2.3.so
Thereafter, DBDesigner started up. I see now, though, that I have to resolve the libsqlmy.so
problem. Thanks for the great site!
http://crlab.com/dbx/download.html DBExpress driver
$> ls -l /var/log
more kylix libs needed: http://www.fabforce.net/forum/viewtopic.php?p=2710#2710
Using ODBC
UnixODBC is available from http://www.unixodbc.org/ or for Debian users by using apt-get:
#> apt-get install unixodbc unixodbc-bin
The next thing needed is an ODBC driver for MySQL which is available as binary package from http://dev.mysql.com/downloads/connector/odbc/. You should fix some links before copying the files:
$> wget http://dev.mysql.com/get/Downloads/MyODBC3/MyODBC-3.51.07-pc-linux-i686.tar.gz/from/http://ftp.plusline.de/mysql/ $> tar -xzvf MyODBC-3.51.07-pc-linux-i686.tar.gz $> cd MyODBC-3.51.07-pc-linux-i686 $> rm -f libmyodbc3 libmyodbc3_r $> ln -s libmyodbc3-3.51.07 libmyodbc3 $> ln -s libmyodbc3_r-3.51.07 libmyodbc3_r #> cp -a libmyodbc* /usr/local/lib/
—-
I am running debian unstable and after doing all the above, I still got
libborqt-6.9-qt2.3.so: cannot open shared object file: No such file or directory
Finally fixed everything when I got an rpm and converted it to deb with the program alien
libborqt-6.9.0-2.i386.rpm can be downloaded from :
http://sourceforge.net/project/showfiles.php?group_id=64092&package_id=68416
Convert to deb file with alien and then install it.
#> alien libborqt-6.9.0-2.i386.rpm #> dpkg -i libborqt_6.9.0-3_i386.deb
Sarge does work with the libborqt_6.9.0-3_i386.deb from http://sourceforge.net/project/showfiles.php?group_id=64092&package_id=68416
The rpm seems to be working for Mandrakelinux 10.x too.
Same problem under Ubuntu 5.04 too. I downloaded libborqt_6.9.0-3_i386.deb from http://sourceforge.net/project/showfiles.php?group_id=64092&package_id=68416, installed, and it worked :)
On Debian unstable (sid), I had to install the following package and libborqt-6.9.0-2: http://packages.debian.org/unstable/libs/libstdc++2.10-glibc2.2
Download the package from the URL above and install it with dpkg.
Problems with libsqlmy.so
After following the previous steps in debian sarge I can't use ./startdbd to run the application; it only starts using ./DBDDesigner4 (it reports the error 'libstdc++-libc6.2-2.so.3: can't open shared file.'). But when I try to open a MySQL database, it reports the error “Unable to load libsqlmy.so”. What workarounds can be done here?
Thanks you very much.
Lbracci@cantv.net
I had the same problem
cmorel@ecnex.com
I had the same problem…and here is the fix: I installed the dbexpress library: download the .tar.gz, copied file libsqlmda.so.2.60 (or 3.10 that is a newer version) to /usr/lib and execute ldconfig.
Then I went to DBDesigner4 → Database → Connect to database. Click on “New Database Connection”, select the “Advance” tab and change the following parameters:
- LibraryName: libsqlmda.so.2.60 (or 3.10, depending of the version that you downloaded)
- VendorLib: libmysqlclient.so.10.0.0
- GetDriverFunc: getSQLDriverMySQL
Please note that by default the GetDriverFunc is “getSQLDriverMYSQL” with capital 'Y', that's why it cannot find it (the function inside the libsqlmda.2.60 is getSQLDriverMySQL, if you execute
# objdump -TC linsqlmda.so.2.60 (or 3.10)
you'll see what I mean)
apatruduque
For a more permanent option, find the [Installation directory]/Data/DBConn_DefaultSettings.ini and edit the same settings as above in this file. This will make the changes global and permanent.
paul
USING XSLT for reporting
ecause Dbdesigner saves in xml format you can use any xsltprocessor for reporting or for inclusing in your documentation, just an example I used the Example/order.xml (But you can use any model) to create the html page do
xsltproc order.xsl Example/order.xml > order.html
<!———order.xsl—- <xsl:stylesheet version=“1.0”
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding=“utf-8” method=“html”/>
<xsl:key name=“data” match=“DATATYPE” use=“@ID”/> <xsl:key name=“Table” match=“TABLE” use=“@ID”/> <xsl:key name=“Cols” match=“COLUMN” use=“@ID”/> <xsl:key name=“RelTo” match=“RELATION” use=“@DestTable”/> <xsl:key name=“RelFrom” match=“RELATION” use=“@SrcTable”/>
<xsl:template match=“/”> <html>
<head> <script type="text/javascript"> <xsl:comment> function toggle(id){ var el = document.getElementById(id); if (el.style.display == 'none') el.style.display = 'block'; else el.style.display = 'none'; } </xsl:comment> </script> </head> <body bgcolor="white"> <xsl:apply-templates /> </body>
</html> </xsl:template>
<xsl:template match=“TABLES”>
<table border="1"> <tr> <th>Table [,relate to[,..]] [|relate from[|..]]</th> <th>Columns</th> </tr> <xsl:apply-templates /> </table>
</xsl:template>
<xsl:template match=“TABLE”>
<tr> <td span="2"><a href="javascript:toggle({@ID});"><xsl:value-of select="@Tablename" /></a> <xsl:for-each select="key('RelFrom',@ID)"> <xsl:text>,</xsl:text><a href="javascript:toggle({@DestTable});"> <xsl:for-each select="key('Table',@DestTable)"> <xsl:value-of select="@Tablename"/> </xsl:for-each> </a> </xsl:for-each> <xsl:for-each select="key('RelTo',@ID)"> <xsl:text>|</xsl:text> <a href="javascript:toggle({@SrcTable});"> <xsl:for-each select="key('Table',@SrcTable)"> <xsl:value-of select="@Tablename"/> </xsl:for-each> </a> </xsl:for-each> </td> </tr> <tr> <td></td> <td><div id="{@ID}" style="display:none;"> <xsl:apply-templates /> </div> </td> <td> </td> </tr>
</xsl:template>
<xsl:template match=“COLUMNS”>
<table border="1"> <tr> <th>Naam</th> <th>Type</th> <th>Key</th> <th>Null</th> <th>ForeignKey</th> </tr> <xsl:apply-templates /> </table>
</xsl:template>
<xsl:template match=“COLUMN”>
<tr> <td><xsl:value-of select="@ColName" /></td> <td> <xsl:call-template name="ConvertId2Type"> <xsl:with-param name="idx" select="@idDatatype" /> </xsl:call-template> <xsl:value-of select="@DatatypeParams"/> </td> <td><xsl:value-of select="@PrimaryKey"/></td> <td><xsl:value-of select="@NotNull"/></td> <td><xsl:value-of select="@IsForeignKey"/></td> </tr>
</xsl:template>
<xsl:template name=“ConvertId2Type”>
<xsl:param name="idx" /> <xsl:for-each select="key('data',$idx)"> <xsl:value-of select="@TypeName"/> </xsl:for-each>
</xsl:template> </xsl:stylesheet> ———- end order.xsl ———→
Have fun Rene