我需要将一个csv文件导入Firebird,我花了几个小时尝试一些工具,但没有一个适合我的需求.
主要的问题是我一直在尝试的所有工具,如EMS数据导入和Firebird数据向导,我希望我的csv文件包含我的表所需的所有信息.
我需要在insert语句中编写一些自定义SQL,例如,我有一个带有城市名称的cvs文件,但由于我的数据库已经有另一个表中的所有城市(规范化),我需要在插入中编写一个子选择查找城市并写入其ID的语句,我也有一个存储过程来创建GUID.
我的Insert语句是这样的:
INSERT INTO PERSON (ID, NAME, CITY_ID) VALUES((SELECT NEW_GUID FROM CREATE_GUID), :NAME, (SELECT CITY_ID FROM CITY WHERE NAME = :CITY_NAME)
Run Code Online (Sandbox Code Playgroud)
我知道写一个应用程序来做这个很容易,但我不喜欢重新发明轮子,我确信有一些工具可以做到这一点.
你们能给我一些建议吗?
以下哪个数据库最适合大型桌面应用程序:Firebird,JavaDB,hsqldb?我需要性能,易用性和完全免费的许可证.
我希望在我的下一个开发项目中使用Firebird或Postgres ......主要是因为两者都可以在类似BSD的许可下使用.
我在http://web.archive.org/web/20100305134128/http://www.amsoftwaredesign.com/pg_vs_fb找到了两个数据库的比较
但是这种比较已经有了4年多的历史,而且这两个数据库都有很长的路要走.
有没有人介意更新比较表,以便与Firebird和Postgres的当前版本相关...或者有一个链接到最近在两个数据库之间进行了良好比较的网站?
我在我的数据库中创建了一个视图,我希望将其包含在我的实体模型中.但是,当我尝试通过VS 2008更新实体模型时,会显示一条警告消息,通知我我正在尝试添加的TABLE或VIEW没有主键.
似乎为了向模型添加视图,这必须有一个关键字段!如果不允许视图具有关键字段,如何将此视图添加到我的模型中,至少在我正在使用的DBMRS的firebird中是这样.
知道如何解决这个问题吗?
我尝试使用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
请享用.
我需要存储由多个不同日历产生的日期和持续时间.特别是我需要存储以下日期:
我还需要存储我定义为两个时间戳(日期和时间)之间差异的持续时间.这意味着需要能够存储"零"日期 - 因此我可以存储持续时间,例如,三个半小时; 或10分钟.
我有所需计算的详细信息.Firebird的时间戳基于日期函数,该函数从公元100年1月1日开始,因此无法按照我需要记录它们的方式使用.此外,此数据类型已准备好(与大多数时间戳功能一样),以记录自基准日期以来的天数; 它不适合记录日历日期.
谁能建议:
编辑:
@Warren P在他的回答中提供了一些出色的工作.我显然没有完全解释我所寻求的内容,因为他的工作主要集中在计算以及如何计算这些计算上.所有有价值和有用的东西,但不是我打算传达的问题.
我确实知道了在日期的各种表示之间进行转换所需的所有计算,并且我对如何实现它们有相当好的想法(使用Warren建议的元素).但是,我的要求是存储符合上面列出的各种标准的日期.示例:要存储的日期 - 'June June 13 Charles II'.我正在尝试确定存储此类日期的适当结构.
编辑:
我修改了我提出的架构.我已在每个表中列出了属性,并通过示例定义了表和属性,在实体框的第三部分中给出.我用这个给出的例子问题和答案通过例如我的定义,我的问题,以对应修改了的例子.虽然我通过描述其他人的例子证明了我的模式,但这种模式可能仍然过于复杂; 过分析; 错过了一些明显的简化,可能很难实现(事实上,这可能是完全错误的).任何意见或建议都是最受欢迎的.

我有一个使用Delphi 2006和Firebird 2.5的应用程序.对于连接,请使用Delphi的Interbase组件.我在设计时设置了一个用户名,密码为tc的TIBDatabase,并且工作正常,但是当我想在另一台PC上运行应用程序时(首先我在它上面安装Firebird 2.5),我收到了这个错误:
Statement failed, SQLSTATE = 28000
Run Code Online (Sandbox Code Playgroud)
您的用户名和密码未定义.请您的数据库管理员设置Firebird登录.
这是什么?我怎么解决这个问题?
我发现EXPLAIN SELECT查询在MySQL中非常有用,因为它提供了有关如何执行SQL的信息,并提供了分析的机会,例如,您应该添加的缺失索引,以便在执行查询本身和分析统计数据之前改进响应.
我的问题是:在像MS Sql,Firebird,Ingres这样的数据库中,是否有类似的命令?
在Firebird中我们有PLAN,但是非常弱,因为很多时候为了查看一个简单的错误,必须运行很长的查询.
最好的祝福,
Mauro H. Leggieri
我正在尝试为C#中的参数查询构建SQL以查找包含该LIKE %%命令的查询.
这是我想要实现的(请注意数据库是Firebird)
var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE '%?%'", TABLE, NAME);
cmd.Parameters.AddWithValue(NAME, "JOHN");
Run Code Online (Sandbox Code Playgroud)
现在我尝试了每一个排列以使参数起作用,我已经尝试过;
将%字符添加到参数中
cmd.Parameters.AddWithValue(NAME, "%" + "JOHN" + "%");
Run Code Online (Sandbox Code Playgroud)要么
cmd.Parameters.AddWithValue(NAME, "'%" + "JOHN" + "%'");
Run Code Online (Sandbox Code Playgroud)我似乎无法使其工作,我如何使用LIKE查询的参数工作.
欢迎提出建议!