我需要测试给定数据库中是否存在各种类型的数据库对象,我不知道如何在Firebird SQL中制定这些测试.每个测试的格式为" X型的对象是否存在名称Y?".例如,我需要测试是否存在具有给定名称的表.我需要测试的对象类型是:
人们可以找到如何在Internet上查询给定的表,但其他类型更难找到...
除非我完全错了,否则我们在Firebird中甚至没有SQL Server的布尔数据类型(1位).为什么?我认为布尔在各种情况下都很有用......而且空间消耗非常低......
我们想要启动一个大型的多层应用程序.服务器端应用程序必须同时响应超过1000个用户.我们想用64位编译器和客户端用32位创建服务器应用程序.在这种情况下,我们不知道DataSnap可以毫无问题地响应所有客户端吗?在这种情况下,服务器计算机非常强大(多处理器和超过16GB的RAM),数据库管理系统是FireBird 2.5.
我正在创建一个简单的isql脚本,但它不起作用,我需要一些帮助来找出它的错误.
我需要连接到数据库并执行SQL文件.这是我的脚本,名为script.sql:
CONNECT 'localhost:C:\Monde\Servidor\db\monde.fdb' USER 'SYSDBA' PASSWORD 'masterkey';
update usuario
set senha = 'MYkWEn0kHLHHdm'
where login = 'rose'
Run Code Online (Sandbox Code Playgroud)
当我尝试连接到我的数据库使用:
isql.exe -i script.sql
Run Code Online (Sandbox Code Playgroud)
我得到以下消息:
Use CONNECT or CREATE DATABASE to specify a database
Expected end of statement, encountered EOF
Run Code Online (Sandbox Code Playgroud) 我对Firebird客户端和服务器版本有疑问.我知道由于ODS更改,数据库文件必须与Firebird服务器匹配.即Firebird建议在服务器版本2.5.1和2.5.2之间备份/恢复数据库文件...
但客户端与服务器的连接怎么样?
哪种组合可以?
客户端2.5.2 - >服务器2.5.2(应该没问题;;))
客户端2.5.2 - >服务器2.5.1
客户端2.5.1 - >服务器2.5.2
客户端2.5.x - >服务器1.5
客户端1.5.x - >服务器2.5.2
有任何已知的问题吗?Firebird的推荐是什么?总是使用新的官方客户端是一个好的原因吗?但由于我们有很多客户安装,我无法确定服务器是否与客户端版本匹配.
希望有人能给我一些建议.
我通过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 …
我是Firebird的新手.我正在尝试从ASP.Net应用程序中使用Firebird Embedded.一切都很好,但我遇到了列名长度的问题.我正在尝试创建一个名为"Orchard_Framework_DataMigrationRecord"的表.我一直收到一个异常,说"名称长于数据库列大小".经过一番调查,我发现有很多人提到Firebird的列名长度限制为30个字符.
这是正确的,如果有的话有什么办法可以改变吗?在我的情况下,我不能改变表的名称; 它真的必须那么久.
我正在尝试连接到远程Firebird数据库"test"(别名已添加).它不是嵌入式服务器,安装在具有IP 192.168.1.147的VM上.
这是我的连接字符串:
用户= SYSDBA;密码= masterkey;数据库=试验;数据源= 192.168.1.147
但是我收到了一个错误:
FirebirdSql.Data.FirebirdClient.FbException(0x80004005):无法完成主机"192.168.1.147"的网络请求.--->无法完成主机"192.168.1.147"的网络请求.
我已经做了一些研究,但尚未得到任何线索.需要一些帮助.谢谢
我的IP地址是192.168.2.108,我可以成功ping通该服务器IP
我有一个表t,其中一列是int类型,有几行.我想循环它.当然,我可以为此编写一个选择查询.但我正在学习程序并写了一个程序,
set term ^;
create procedure qt returns(a int) as
begin
for select i from t into :a do
suspend;
end^
set term ;^
Run Code Online (Sandbox Code Playgroud)
但是当我打电话给这个程序时,我只回到一行,
execute procedure qt;
Run Code Online (Sandbox Code Playgroud)
我知道了,
A
============
1
Run Code Online (Sandbox Code Playgroud)
我想我不明白suspend.
我有一张大约246k记录的表格.它有大约25列,除了一个小blob外都是整数.
如果我在所有字段上查询表
select a.recordid, a.editcount, ect.. from ARTrans a
Run Code Online (Sandbox Code Playgroud)
它在一秒钟内执行.但是,如果我只包括记录ID
select a.recordID from ARTrans a
Run Code Online (Sandbox Code Playgroud)
执行需要20多秒.大部分时间花在计划(自然)上似乎很奇怪,因为在大多数情况下,我有一个关于recordid的索引.
我收集了垃圾,重新创建了索引,删除了索引,在RecordID上只添加了一个索引,但它仍然超级慢.
任何帮助将不胜感激.
编辑提供更多信息:
Firebird:2.5.3.26778
fbclient.dll:2.5.1.26351
数据库中没有其他人,我已将其移至本地.
这是表def
CREATE TABLE ARTRANS
(
RECORDID Integer NOT NULL,
EDITCOUNT Smallint,
CLASSIFICATION Smallint,
TRANSID Integer,
DATEENTERED Integer,
CLIENTID Integer,
TRANSTYPE Smallint,
BILLED Smallint,
FINALIZEID Smallint,
INVOICEID Integer,
INVOICENUM Integer,
INVOICEDATE Integer,
GROUPID Smallint,
EXPORTED Char(1),
TRANSVALUE Decimal(18,4),
DESCRIPTION Blob sub_type 0,
POSTPERIOD Smallint,
LINKEDTRANSID Integer,
LINKEDINVID Integer,
LINKEDFUNDSID Integer,
INFOONLY Smallint,
NEEDTRANSFER Char(1),
DESTTRANSID Integer,
LSTTKREDIT Integer,
SPELLNGRAMMARCHECKSTATUS …Run Code Online (Sandbox Code Playgroud) firebird ×10
boolean ×1
database ×1
datasnap ×1
delphi ×1
delphi-xe3 ×1
firebird2.5 ×1
interbase ×1
isql ×1
jaybird ×1
multi-tier ×1
performance ×1
privileges ×1
role ×1
sql ×1