我尝试使用SQuirrel SQL 3.4 + Firebird 1.5 +驱动程序JDBC Jaybird 2.2.[0 | 1](JVM 1.7.0_03)在SELECT语句中添加列别名,但不起作用.列别名显示为列的原始名称.在另一个工具(DBExpert)中,相同的语句可以正常工作.
声明:SELECT column1 AS alias1, column2 FROM table;
合力列名SquirrelSQL:column1 - column2
合力列名DBExpert:alias1 - column2
尝试在别名周围添加'和',但也无法正常工作.
有人有想法吗?
编辑:我将JDBC Jaybird驱动程序更新为2.2.1版本(9月30日发布),问题仍然存在.
编辑2:问题已解决!
问题是由Squirrel SQL的默认首选项引起的.
要解决此问题,请转到"文件" - >"全局首选项",在"数据类型控件"选项卡中找到"常规(适用于所有类型)"并标记组合框"在结果标题中使用列标签而不是列名称".
见截图:http://i1-win.softpedia-static.com/screenshots/SQuirrel-SQL-Client_4.png?1345342622
请享用.
我正在使用JDBC连接到数据库服务器.连接是通过无线网络进行的,有时可能很狡猾.在连接丢失的那一刻,我需要关闭并重新启动应用程序.
有没有人有一些代码示例,我可以编写某种包装器来自动重新连接并重新运行最后一个查询?这样可以省去很多麻烦.
我只是不确定它应该如何/可以实施.也许已经有了可用的东西?
我在Windows XP上安装了Firebird 2.1,并使用firebirdsql.jdbc-2.1.6驱动程序与java连接.码:
Class.forName("org.firebirdsql.jdbc.FBDriver");
connection = DriverManager.getConnection(
"jdbc:firebirdsql://localhost/3050//C:/firebird/database/EMPLOYEE.FDB",
"test","test");
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544375. unavailable database Reason: unavailable database at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:122) at org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:140) at java.sql.DriverManager.getConnection(DriverManager.java:525) at java.sql.DriverManager.getConnection(DriverManager.java:171)
请帮忙.
问题解决了:实际上我遇到了jar文件的问题
http://mirrors.ibiblio.org/pub/mirrors/maven2
我从firebird官方网站下载了jaybird-full-2.1.6.jar,问题解决了.
正确的URL是
"jdbc:firebirdsql://localhost:3050/C:\\firebird\\database\\EMPLOYEE.FDB"
Run Code Online (Sandbox Code Playgroud)
我之前也尝试过这个URL,但由于jar问题而无法正常工作.
我开发了Jaybird JDBC驱动程序,今天我遇到了一个问题(JDBC-325,如何配置Jaybird与hibernate),这与Jaybird如何加载其组件以及如何 - 在这种情况下 - NetBeans限制类加载有关.
问题与Jaybird使用条目加载部分内容的方式有关META-INF/services,NetBeans为Hibernate向导使用的类加载器显式忽略了这些文件(请参阅下面的详细信息).
我可以通过(也)尝试加载作为Jaybird实现的一部分的硬编码插件列表,或者通过将定义移动到其他位置来解决此问题.
但是我想知道META-INF/services像Jaybird这样用于内部目的是否奇怪(或错误)?
我也不明白为什么NetBeans会排除加载META-INF/services?Drew的评论似乎表明NetBeans在加载驱动程序时使用它来解决错误(参见本期),尽管我认为用户可以更好地解决这一问题,包括驱动程序的所有依赖关系.
Jaybird使用插件来支持协议,例如Type 4协议,自定义Type 4 Open Office协议,Type 2嵌入式(本机)协议和Type 2本机客户端协议.我还相信第三方曾经使用它来提供将Oracle特定语法转换为Firebird语法的驱动程序.
所有这些插件都列在META-INF/services/org.firebirdsql.gds.impl.GDSFactoryPlugin并以类似于java.util.ServiceLoader(当前2.2.x驱动程序仍然支持Java 5,因此我们实际上不使用ServiceLoader)的方式加载.对于即将推出的版本,我还计划将其用于支持的连接编码和(线路)协议定义.这将允许"自定义"编码定义(例如,扩展支持的编码,或使用备用编码)或不同的协议实现(例如,用于故障排除,自定义日志记录等).
现在实际的问题是Netbeans向导Hibernate Mapping Files和来自Database的POJO使用自定义类加载器(org.netbeans.modules.hibernate.util.CustomClassLoader),而这个类加载器忽略了文件META-INF/services.请注意,只有这个向导有问题,Netbeans本身可以毫无问题地使用驱动程序.
代码忽略META-INF/services:
@Override
public URL findResource(String name) {
return name.startsWith("META-INF/services") ? null : super.findResource(name); //NOI18N
}
@Override
public Enumeration<URL> findResources(String name) throws IOException {
if (name.startsWith("META-INF/services")) { //NOI18N …Run Code Online (Sandbox Code Playgroud) 我通过jaybird创建了一个Firebird用户(PIPPO),跟随gsec"display":
GSEC> di
user name uid gid admin full name
------------------------------------------------------------------------------------------------
SYSDBA 0 0 Sql Server Administrator
PIPPO 0 0 GesAll 1.0 User
GSEC>
我在Firebird DB中创建了一个角色(GESALLDB_USER)并授予了一些权限:
SQL> show grant; /* Grant permissions for this database */ GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON ANELLI TO ROLE GESALLDB_USER GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON COPPIE TO ROLE GESALLDB_USER GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON COVE TO ROLE GESALLDB_USER GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON DATI_CONFIGURAZIONE TO ROLE GESALLDB_USER …
使用@Transactional(value ="erpJPA",propagation = Propagation.NESTED)我有例外
Caused by: org.springframework.transaction.NestedTransactionNotSupportedException:
JpaDialect does not support savepoints - check your JPA provider's capabilities
Run Code Online (Sandbox Code Playgroud)
firebird不支持1.5版的嵌套事务吗?
我正在尝试使用 Spring Data JDBC 和 Spring Boot 连接到 Firebird 数据库。我使用 Spring Tools 创建了一个简单的应用程序。Spring Data JDBC 无法识别方言。我认为问题在于DialectResolver它不支持 Firebird。
private static Dialect getDialect(Connection connection) throws SQLException {
DatabaseMetaData metaData = connection.getMetaData();
String name = metaData.getDatabaseProductName().toLowerCase(Locale.ENGLISH);
if (name.contains("hsql")) {
return HsqlDbDialect.INSTANCE;
}
if (name.contains("h2")) {
return H2Dialect.INSTANCE;
}
if (name.contains("mysql")) { // catches also mariadb
return new MySqlDialect(getIdentifierProcessing(metaData));
}
if (name.contains("postgresql")) {
return PostgresDialect.INSTANCE;
}
if (name.contains("microsoft")) {
return SqlServerDialect.INSTANCE;
}
if (name.contains("db2")) {
return Db2Dialect.INSTANCE;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我是 …
我从firebird 2.5.x迁移到3.0我改变了firebird.conf:
WireCrypt = Enabled
AuthServer = Legacy_Auth, Srp, Win_Sspi
Run Code Online (Sandbox Code Playgroud)
在那之后你就是这样:
我可以使用SYSDBA masterkey从Netbeans IDE连接.我可以使用SYSDBA和其他密码从FlameRobin(数据库管理工具)连接.我无法使用SYSDBA与其他密码从Wild-Fly服务器连接.
我真的很想知道.!!
我使用java和jaybird驱动程序.在我之前使用jaybird 2.x的版本中,我使用GDS低级访问(服务API)连接服务器(没有连接db-part),以获取服务器版本字符串.
现在我尝试使用FB3 + jaybird3beta.JB3中没有GDS API.正如我从文档中看到的那样 - 有org.firebirdsql.util.FirebirdSupportInfo对象有3个实现
static FirebirdSupportInfo supportInfoFor(Connection connection)
static FirebirdSupportInfo supportInfoFor(FbDatabase database)
static FirebirdSupportInfo supportInfoFor(GDSServerVersion serverVersion)
Run Code Online (Sandbox Code Playgroud)
我看到了:
还有带有getConnection()函数的java.sql.DriverManager"尝试建立与给定数据库URL的连接"
所以,据我所知,如果没有连接到任何数据库,它无法获得服务器版本?或者我想念什么?
或者我如何才能使用server:port和给定的用户名/密码来获取服务器的版本?
我不确定这是否是ColdFusion 2018错误,或者它是否是ColdFusion 2018实施Firebird 2.5的Jaybird 2.2.10驱动程序的方式。
我有一个表,其中包含名为“ item_date”的列。此列具有Firebird“日期”数据类型。在ColdFusion 10中,以下查询根据返回的月份显示正确的字符串长度。但是,在ColdFusion 2018中,所有字符串的长度返回为9。几乎就像ColdFusion将结果集分配为CHAR(9)数据类型,而不是应有的VARCHAR。
我的概念证明代码示例如下所示。
<cfquery name="test" datasource="#application.dsn#">
SELECT
CASE EXTRACT (MONTH from item_date)
WHEN 1 THEN 'January'
WHEN 2 THEN 'February'
WHEN 3 THEN 'March'
WHEN 4 THEN 'April'
WHEN 5 THEN 'May'
WHEN 6 THEN 'June'
WHEN 7 THEN 'July'
WHEN 8 THEN 'August'
WHEN 9 THEN 'September'
WHEN 10 THEN 'October'
WHEN 11 THEN 'November'
WHEN 12 THEN 'December'
END itemMonth
FROM MY_TABLE
</cfquery>
<cfloop query="test">
#test.itemMonth# - Length: #Len(test.itemMonth)#<br />
</cfloop> …Run Code Online (Sandbox Code Playgroud) jaybird ×10
firebird ×9
java ×4
jdbc ×3
coldfusion ×1
database ×1
firebird-3.0 ×1
firebird2.1 ×1
firebird2.5 ×1
hibernate ×1
jpa ×1
meta-inf ×1
netbeans ×1
privileges ×1
role ×1
spring ×1
spring-boot ×1
sql ×1
squirrel-sql ×1
wildfly ×1