DbVisualizer常见问题解答

原文出处:http://database.ctocio.com.cn/tips/484/7625484.shtml

1. 一般性问题

  1.1 DbVisualizer是不是开放性资源?

  不是的。DbVisualizer是一个专利软件应用程序。

  1.2 我可不可以在外部媒介,比如通过CD分发DbVisualizer?

  详细信息请与sales@minq.se联系。

  1.3 DbVisualizer中的参照图(references graph)很好用。它是分开购买的吗?

  是的。欲知详情请联系uWorks。

  1.4 我可不可以在我的网页上添加DbVisualizer的链接?

  当然可以!确认您添加的链接如下:http://www.dbvis.com/products/dbvis

2. 安装

  2.1调试安装

  在Windows界面下:安装程序会在users临时文件夹目录里产生一个log in文件。一般为:

  C:\Documents and settings\$USER\Local Settings\Temp. 文件名以i4jnlog开头。

3. 运行DbVisualizer

  3.1我在开始运行的时候遇到“无效的许可密钥代码文件格式”( "Invalid license key format")

  当使用无效的许可密钥代码文件运行DbVisualizer 5.0时会出现上述错误。如果使用了旧版如3.x或4.x版本的许可密钥代码文件,就会出现这样的问题。

  解决办法:

  升级您的DbVisualizer Personal个人版许可证。

  或者注册最新版本的许可证。

  或者确定您运行的DbVisualizer版本与您的许可证相符。

  3.2 我如何手动运行DbVisualizer?

  正常情况下DbVisualizer是通过在安装时产生的可执行文件启动。下面的方法仅供推荐启动方法不适合的时候使用。要注意以下是一个完整的命令,只有一行,中间没有行分隔符。还要注意在冒号“:”后没有空白。(以DbVisualizer安装目录中的确切地址代替$DBVIS_HOME):

  注意:以下命令只适用于DbVisualizer 5.0:

  java -Xmx256m

  -cp $DBVIS_HOME/resources:

  $DBVIS_HOME/lib/alloy.jar:

  $DBVIS_HOME/lib/commons-lang.jar:

  $DBVIS_HOME/lib/crimson.jar:

  $DBVIS_HOME/lib/dbvis.jar:

  $DBVIS_HOME/lib/forms.jar:

  $DBVIS_HOME/lib/ideit-util.jar:

  $DBVIS_HOME/lib/jai-imageio.jar:

  $DBVIS_HOME/lib/jcchart.jar:

  $DBVIS_HOME/lib/jdom.jar:

  $DBVIS_HOME/lib/jide.jar:

  $DBVIS_HOME/lib/log4j.jar:

  $DBVIS_HOME/lib/nb-editor.jar:

  $DBVIS_HOME/lib/ognl.jar:

  $DBVIS_HOME/lib/openide-util.jar:

  $DBVIS_HOME/lib/poi.jar:

  $DBVIS_HOME/lib/yFiles.jar

  -Dcom.apple.macos.useScreenMenuBar=true

  -Ddbvis.home=$DBVIS_HOME com.onseven.dbvis.DbVisualizer

        3.3调试启动

  在Windows界面里:

  为DbVisualizer安装目录展开DOS外壳和CD。

  执行set INSTALL4J_LOG=yes。

  然后启动dbvis.exe

  这样就会在用户临时目录中创建一个log文件。一般位置为:

  C:\Documents and settings\$USER\Local Settings\Temp. The name of the file starts with i4jnlog

4. JDBC

  4.1 什么是JDBC?

  JDBC的全称为Java Database Connectivity,即Java数据库连接,是一个应用程序接口,用来规范客户端程序访问数据库的方式。JDBC主要是描述多种低水平方法的Java界面。要连接数据库,需要安装一个JDBC驱动。各个供应商提供各种不同的JDBC驱动,因此要访问特定的数据库,必须安装与该数据库相符的JDBC驱动。

  DbVisualizer需要添加JDBC驱动程序。

  4.2 我应该用什么样的JDBC驱动程序?

  你需要安装适用于你要连接的数据库JDBC驱动程序。想要更多信息,请参考Databases and JDBC Drivers。DbVisualizer适用任何类型的JDBC驱动,不过使用type 4驱动程序(又名light weight driver)最简单。

  4.3 我怎么样加载JDBC驱动然后连接数据库?

  可以访问Load JDBC Driver and Get Connected中的Connection Wizard部分。

  4.4 “无适当驱动”错误信息

  “无适当驱动”信息可能会出现在连接标签中的连接信息中:

  无适当驱动。没有驱动能够处理该特定URL的连接。最常见的原因就是该驱动没有在Driver Manager中加载。还要确认URL拼写正确。要么是需要的驱动没有加载成功,要么就是数据库的URL语法无效。

5. 相关驱动/数据库

  5.1 Oracle:Oracle中存储过程/功能显示数次。

  注意:这个只有在使用免费版DbVisualizer或者当“genetic”数据库描述文件在个人版DbVisualizer载入的情况下才适用。

  属于一个数据包的Oracle存储过程/功能在数据库对象树中出现数次。这跟Oracle JDBC驱动以及其报告存储过程/功能的方式有关系。

  5.2 Oracle:Oracle中存储过程/功能列出现数次。

  注意:这个只有在使用免费版DbVisualizer或者当“genetic”数据库描述文件在个人版DbVisualizer载入的情况下才适用。

  在Oracle数据库,在数据库对象树中现在一个存储程序/功能,该列会出现多次。这跟Oracle JDBC驱动以及其报告存储过程/功能的方式有关系。

  5.3 Oracle: Oracle数据库中数字显示为无效

  如果JDBC驱动不符合2.0,这种情况可能发生。一般而言,我们建议针对Oracle应使用最新版本的JDBC驱动。

5.4 Oracle:一些存储程序/功能在数据库对象树中显示为“xx.yy”。

  注意:这个只有在使用免费版DbVisualizer或者当“genetic”数据库描述文件在个人版DbVisualizer载入的情况下才适用。

  Oracle数据库能够把多个过程和功能分组打包。上述的“xx”是指文件包名字,而“yy”是实际过程/功能名称。

  5.5 Oracle:在Oracle中,即使使用Oracle 9或更高版本,DDL标签都不出现。

  DDL功能要求JDBC 3驱动。确认您使用的是Oracle网站上最新版本的JDBC驱动。

  5.6 MySQL:MySQL 中my tables之间没有references。

  MySQL中不在参照图中显示的InnoDB类型的表格被证实在旧版本的Connector/J JDBC Driver中为bug。请升级到最新的3.0.9版本。

  5.7 MySQL:“0000-00-00”值不能作为java.sql.Timestamp。

  要访问Data tab或SQL Commander中包含DATETIME列的表格有时候会在调试窗口中出现“0000-00-00”值不能显示为java.sql.Timestamp的错误报告。出现这种情况的时候,整列都会变成红色。

  由于DATETIME列的默认值被定义为0000-00-00 00:00:00,所以Connector/J driver报告出错。当出现这种情况的时候,驱动就会失效。

  解决方法:

  1. 在对象树中选择MySQL数据库连接

  2. 选择“连接”选型卡中的“属性”

  3. 在分类树中选择“驱动程序属性”

  4. 在“属性”中找到zeroDateTimeBehavior。 以下是Connector/J描述zeroDateTimeBehavior属性的摘选。当驱动程序遇到DATETIME值全都由零组成的时候会发生什么?有效值为“exception”、“round”和“convertToNull”。

  5. 在value field中输入一个有效选项。

  6. 点击“应用”,然后就可以连接数据库了。

  5.8 Sybase:当访问Sybase ASE数据库时,DbVisualizer会挂掉。

  有些用户曾经投诉过访问Sybase ASE数据库时出现当机情况。这种情况发生在表格中Data和Row统计以及在SQL Commander中执行SQL语句的时候。

  问题出在Sybase JConnect驱动,而Sybase网站上的EBF10839能够解决这个问题。

  5.9 Sybase:连接Sybase的时候出现UnsupportedEncodingException: xxx。

  当我连接Sybase数据库时出现以下:

  JZ006: Caught IOException: java.io.IOException:

  JZ0I6: An error occured converting UNICODE to the charset used by

  the server.

  Error message: java.io.CharConversionException:

  java.io.UnsupportedEncodingException: hp-roman8

  解决方法很简单,只需要在数据库URL中添加?charset=iso_1 last:

  jdbc:sybase:Tds:localhost:2048/?charset=iso_1

  另外一个解决方法是添加一个驱动属性(连接属性),名为charset,值为iso_1。

5.10 Sybase:加载FrontBase驱动时无法连接到Sybase ASE数据库。

  如果在Driver Manager中加载FrontBase driver似乎会影响到对Sybase ASE数据库的连接。出于某种原因,FrontBase driver认为自己应该负责建立连接,而非Sybase JConnect driver。

  5.11 Sybase:“无法在数据库中找到JZ0SJ – 元数据访问者信息”

  这个错误出现在Sybase ASE或ASA服务器没有激活JDBC的情况下。这是一个JDBC要求,只要在服务器中执行一个脚本就可以轻松解决问题。更多信息可以从以下网址获得:Installation Guide jConnect for JDBC 5.5.

  注意:上述脚本是jConnect驱动的一部份。

  5.12 DB2:DbVisualizer挂起

  使用Type 4驱动程序来访问DB2有时候会导致DbVisualizer挂起。解决方法是确保db2java.zip文件不是加载到Driver Manager上。

  5.13 DB2:SQLs错误在SQL Commander中不显示错误信息

  在使用DB2 JDBC Universal Driver Architecturee 4驱动程序来访问DB2。当在SQL Commander执行错误的SQL语句是,出现的只有几个错误代码,但没有错误信息指示哪里出错。

  解决方案:

  出现这样的问题是因为驱动程序默认设置并不从数据库服务器里获取任何错误信息。要改变这个设置只需要:

  1. 在对象树中选择DB2数据库连接

  2. 点击“连接”选项卡中的“属性”

  3. 在类型树中选择“驱动程序属性”

  4. 在列表中添加一行,名字为retrieveMessagesFromServerOnGetMessage,值设为True。

  5. 点击“应用”,然后连接数据库。

  5.14 DB2:执行错误SQL时DbVisualizer挂起

  当我在SQL Commander中执行一个错误的SQL命令时,DbVisualizer挂起。

  发生这个问题是因为一些DB2服务器在其属性设置为retrieveMessagesFromServerOnGetMessage时不能处理错误信息。只要清楚它,然后重新连接就可以了。

  反过来执行5.13中的过程就可以清除这个属性。

  5.15 SQL服务器:连接Windows Authenticaton

  使用 jTDS JDBC驱动程序来连接 Windows Authentication。想要更多详细信息,登录 http://jtds.sourceforge.net/faq.html以及域属性。下载驱动程序并安装完毕后,在 DbVisualizer连接属性中添加域属性。

  5.16 SQL服务器:临时表格

  如果你在使用临时表格,确保要包含以下SQL语句作为匿名SQL块。例如:

  --/

  select * from mytemptable

  /

6. DbVisualizer usage 用法

6.1 为什么在参照图里表格之间没有弧线?

  参照图显示数据库里表格之间的关系以支持参照完整性(也称主键和外键映像)。如果数据库不支持主键/外键映像,或者如果还没有定义映像,参照图就不会显示表格之间的弧线。

  像Oracle、Sybase、DB2和Cloudscape这样的数据库一般都支持参照完整性。

  6.2 这个变量是什么?

  DbVisualizer的变量管理主要用于把查询参数化。要了解更多信息,请参考SQL Commander的用户指南部分。

  6.4 数据库程序和功能之间有什么区别?

  程序不能返回任何结果,而功能可以返回结果。

  6.5 在Oracle中不能用大小写混合的名查看表格

  (除了Oracle,别的数据库也会出现这种问题。我们只是在这里把Oracle作为一个例子。)

  Oracle一般所有对象名称都为大写,如表格名称、索引名称、列名称等等。但是,也可能会创建这样的名称:

  create table myschema."MyTable"

  这样做Oracle就会创建出指定的名称。要选择这个表格,您必须输入:

  select * from myschema."MyTable"

  DbVisualizer的表格对象的 Data and Rows选项卡会使用工具属性中指定SQL选择语句。

  打开工具属性

  把SQL Select All修改为:

  select * from $$schema$$$$schemaseparator$$"$$table$$"

  把SQL Select Count改为:

  select count(*) from $$schema$$$$schemaseparator$$"$$table$$"

  6.6 在“Data”和“SQL Commander”选项卡中出现 java.lang.AbstractMethodError错误

  DbVisualizer需要一个与 Java 3 (JDBC 3.0)兼容的JDBC驱动程序才能正常工作。如果使用与 Java 3 不兼容的驱动时往往会(在调试窗口)出现以下错误信息。

  Exception occurred during event dispatching:

  java.lang.AbstractMethodError

  at se.pureit.dbvis.Selector.getValue(Selector.java:201)

  ...

  Exception occured during event dispatching:

  java.lang.AbstractMethodError:

  oracle/jdbc/driver/OracleResultSet.getBigDecimal

  ...

  java.sql.SQLException: Unsupported feature at

  oracle.jdbc.dbaccess.DBError.check_error(DBError.java:479) at

  oracle.jdbc.driver.OracleResultSet.getBigDecimal(

  OracleResultSet.java:866)

  ...

6.7 无法看到同义词、触发器、功能、存储过程、视图、别名、数据文件、用户等等。

只有 DbVisualizer个人版才支持扩展可视化。查看 feature matrix获得更多关于相关数据库会出现哪些对象。

  6.9 点击“停止”,但没有任何事情发生

  注意:以下只对 DbVisualizer 5.0以上版本有效。一般建议用户使用最新版本。

  当DbVisualizer控制当前的SQL执行时,点击“停止”只会中断执行。也就是说,如果数据库当前正在执行命令,DbVisualizer会等到数据库完成执行命令后再中断此过程。原因是JDBC的“取消”命令可能会导致JDBC服务器使程序停止或出现其他奇怪的错误。

  6.10 一个多声明SQL脚本可不可以访问数个数据库连接/数据库?

  不能。DbVisualizer个人版里的多声明SQL功能只能访问一个数据库连接的数据库对象。

  6.11 调试 DbVisualizer

  按照以下步骤来实现具体的DbVisualizer调试:

  打开工具->工具属性

  选择调试分类

  设置调适等级为“调试”

  设置等级为“全”

  在工具属性窗口点击“完成”

  打开工具->调试窗口

  现在可以运行您想要得到的详细调试信息的操作。

  6.12 如果表格/列名称包含大小写混合的字符和/或空格,DbVisualizer就会无效。

  如果表格中表格或列名称中含有大小写混合的字符或空格, DbVisualizer 就不能访问该表格的 Data, Row Count选项卡和其他功能。

  解决方法是找出数据库连接的内含字符。执行以下步骤:

  在数据库对象树里选择该数据库连接对象。

  在连接选项卡中选择属性卡。

  在 Table Name Prefix/Suffix和/或 Column Name Prefix/Suffix中输入适当的界定符。

  The following is a list of valid enclosing character per some of the supported databases.

  以下是各数据库有效字符的列表:

Database
Table Name Prefix
Table Name Suffix
Column Name Prefix
Column Name Suffix
Oracle
"
"
"
"
HSQL
"
"
"
"
SQL Server
" or [
" or ]
" or [
" or ]
MySQL
`
`
`
`
PostgreSQL
"
"
"
"
DB2
"
"
"
"
Sybase
" or [
" or ]
" or [
" or ]

6.13 可否完全禁用数据编辑?

  可以。

  方法:

  在文本编辑器里打开文件 DBVIS-HOME/resources/dbvis-custom.prefs.

  找出 dbvis.disabledataedit property

  把它的值设置为true。记住要去掉该行开始的“#”。

  保存文件,然后重新启动 DbVisualizer。

  7. Mini how to's 怎么样⋯⋯?

  7.1 我怎么样执行SQL脚本?

  DbVisualizer个人版支持该功能。输入SQL语句,然后以工具属性中指定的界定符进行界定(默认界定符为“;”)

  7.2 怎么样在 DbVisualizer免费版里编辑表格数据?

  以下简单介绍了如使用变量代替功能来编辑数据。

  首先在数据库对象树中选择表格。

  选择要编辑的表格的“Data”选项卡。

  当鼠标在网格区的时候,单击鼠标右键,显示弹出菜单。

  弹出菜单列出了以下编辑选项:

  insert into

  insert COPY into

  update where

  delete from

  这些选项中除了“insert into”都要求选中至少一行中的一个单元格。选中的单元格会作为最后“where”从句中的对象。确保您选中合适的单元格。

  选择了选项后, SQL Commander会出现。现在编辑区会包含一个伪SQL语句。该语句包含 DbVisualizer变量和默认值。

  现在点击 SQL Commander中的“执行”。

  然后会出现一个包含所有数据的表格。

  在这个表格里实施编辑。

  完成!

  7.3 怎么样增大Java的内存?

  DbVisualizer默认Java VM最大内存为256MB。以下步骤为如何为每一个平台扩大内存。

  Windows/Linux/UNIX:

  在文本中打开 dbvis.vmoptions options文件(该文件在 DbVisualizer安装目录里)。

  可以在这个文件中添加任何Java系统属性,每一行都成为Java VM的标准系统属性:

  -Xmx256m

  (以上例子设置内存为256MB,但是您可以把它设置为适合您系统的值。

  Mac OS X:

  在 Mac OS X里,编辑 Info.plist文件,修改Java VM包含最大内存属性的参数。

  想了解更多参考Changing properties and Java VM on Mac OS X

  7.4 如何改变DbVisualizer使用的 Java VM?

  在 DbVisualizer安装目录里有一个.install4j目录。在这个目录里创建一个名为 pref_jre.cfg的文件。在文本编辑器中打开该文件,在根目录里添加您想要使用的Java安装完整路径。

  比如:C:\Program Files\Java\jdk1.5.0_02

  Mac OS X:参考 Changing properties and Java VM on Mac OS X

  7.5 Mac OS X操作疑问

  参考FAQ - Mac OS X

  7.6 怎么样把设置移植到新机器上?

  所有的个人设置都保存在.dbvis目录里。该目录存储位置根据用户使用的OS不同而不同。要从一个机器上把设置移植到新机器上,只要在原来的机器上把.dbvis目录压缩到最大程度,然后在目标机器上解压缩。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值