标签: firebird

使用ISQL执行脚本

我正在创建一个简单的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 interbase isql

7
推荐指数
2
解决办法
2万
查看次数

通过/ distinct查询firebird慢速顺序

我对Firebird中的查询速度有疑问.缓慢是在排序和清晰.

如果我在MySQL中尝试查询,那么他会快一秒.

Firebird - > 1,3s a 1,6s MySQL - > 0,3s a 0,4s

我们在Web服务器/网站上使用Firebird数据库,因此速度很重要.

规格: - Firebird 2.5.1或2.5.2(SuperClassic)64位 - 2,13 Ghz(2个处理器) - RAM 4,00 GB

我能做什么?

我有以下表格:

================================================== ==

CREATE TABLE ARTICLE3_1
(
  IDARTICLE Integer NOT NULL,
  ITEMSTATUS Integer,
  ITEMENTRYDATE Integer,
  ITEMFILTER Integer,
  ARTIKELNUMMER Varchar(250),
  ARTIKELNAAM1 Varchar(250),
  ARTIKELNAAM2 Varchar(250),
  OMSCHRIJVING_DETAIL Blob sub_type 1,
  OMSCHRIJVING1 Varchar(250),
  OMSCHRIJVING2 Varchar(250),
  ARTIKELNR_LEVERANCIER Varchar(250),
  MERK Varchar(250),
  LEVERANCIER Varchar(250),
  EAN Varchar(250),
  LINKAANGROEP Varchar(250),
  LINKAANAANBIEDINGGROEP Varchar(250),
  LINKAANPOPULAIRGROEP Varchar(250),
  LINKAANART Varchar(250),
  ARTGRPNR Varchar(250),
  SUBGROEP Varchar(250),
  PRIJSPER Integer, …
Run Code Online (Sandbox Code Playgroud)

mysql sql performance firebird database-performance

7
推荐指数
1
解决办法
1168
查看次数

SQL:WHERE IN()中的项目顺序是否重要?

WHERE IN子句中值的顺序是否重要?(如果这很重要,这是在Firebird SQL上)

如:

where field1 in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Run Code Online (Sandbox Code Playgroud)

性能提升超过

where field1 in (3, 5, 10, 2, 1, 8, 6, 9, 4, 7)
Run Code Online (Sandbox Code Playgroud)

sql firebird sqlperformance

7
推荐指数
1
解决办法
1253
查看次数

具有授予权限的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 …

database privileges firebird role jaybird

7
推荐指数
1
解决办法
1万
查看次数

是否可以扩展Firebird表名长度?

我是Firebird的新手.我正在尝试从ASP.Net应用程序中使用Firebird Embedded.一切都很好,但我遇到了列名长度的问题.我正在尝试创建一个名为"Orchard_Framework_DataMigrationRecord"的表.我一直收到一个异常,说"名称长于数据库列大小".经过一番调查,我发现有很多人提到Firebird的列名长度限制为30个字符.

这是正确的,如果有的话有什么办法可以改变吗?在我的情况下,我不能改变表的名称; 它真的必须那么久.

firebird firebird-embedded

7
推荐指数
1
解决办法
5682
查看次数

Firebird:无法完成对主机的网络请求

我正在尝试连接到远程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

firebird remote-server

7
推荐指数
2
解决办法
4万
查看次数

无法使用ISQL连接到本地Firebird

我正在尝试设置一个本地firebird实例进行测试,但即使是ISQL也无法连接到它.我试图通过遵循快速入门指南以下位置:

CONNECT ..\examples\empbuild\employee.fdb user SYSDBA password masterkey;
Run Code Online (Sandbox Code Playgroud)

结果导致:

Statement failed, SQLSTATE = 08001
unavailable database
Run Code Online (Sandbox Code Playgroud)

经过一番搜索,我尝试将其修改为:

CONNECT "localhost:C:\Program Files\Firebird\Firebird_2_5\examples\empbuild\employee.fdb" user SYSDBA password masterkey;
Run Code Online (Sandbox Code Playgroud)

结果导致:

Statement failed, SQLSTATE = 28000
cannot attach to password database
Run Code Online (Sandbox Code Playgroud)

在确认我有正确的目录路径后,我决定立即联系并尝试创建一个新的DB:

SQL>CREATE DATABASE 'C:\data\test.fdb' page_size 8192
CON>user 'SYSDBA' password 'masterkey';
Run Code Online (Sandbox Code Playgroud)

这也给了我错误:

Statement failed, SQLSTATE = 08001
unavailable database
Run Code Online (Sandbox Code Playgroud)

我可能会遇到任何常见的陷阱吗?我也尝试过上面的命令,无论是否运行firebird服务.还有关于SQLSTATE代码的详细参考吗?

firebird isql firebird2.5

7
推荐指数
1
解决办法
3万
查看次数

如何暂停在firebird中工作?

我有一个表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.

firebird

7
推荐指数
1
解决办法
4773
查看次数

简单的Firebird查询非常慢

我有一张大约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)

sql performance firebird firebird2.5

7
推荐指数
1
解决办法
1306
查看次数

FBRemoteEvent崩溃了应用程序

我正在使用fb远程事件来监听数据库,我在我的应用程序加载内部线程启动它.

当我在我的Windows 10(本地PC)上运行它时,它正常工作并完美但是当我在Windows Server 2003上运行它时,它开始填充RAM内存比它应该多得多,当它达到服务器限制时它就会关闭.

这是我的代码:

private void DataBaseEventListner()
{
    FbRemoteEvent revent = new FbRemoteEvent(M.Baza.connectionString);
    FbRemoteEvent revent1 = new FbRemoteEvent(M.Baza.connectionKomercijalno2018);

    revent.RemoteEventCounts += (sender, e) =>
    {
        this.Invoke(new MethodInvoker(delegate
        {
            Poruka p = new Poruka(Magacin.Poruka.UcitajPoslednjuPorukuID(Korisnik.korisnikId));
            p.Show();
        }));
    };

    revent1.RemoteEventCounts += (sender, e) =>
    {
        switch (e.Name)
        {
            case "PP_NEW":
            case "PP_UPD":
                Thread thread1 = new Thread(UcitajPoslovnePartnere);
                thread1.Start();
                break;
        }
    };

    revent.QueueEvents(String.Format("nova_poruka~" + Korisnik.korisnikId.ToString()));
    revent1.QueueEvents(new string[] { "PP_NEW", "PP_UPD" });
}


private void UcitajPoslovnePartnere()
{
    poslovniPartneri = Komercijalno.Partner.Lista();
}

public static List<Int_String> …
Run Code Online (Sandbox Code Playgroud)

c# firebird event-handling firebird2.1 server

7
推荐指数
1
解决办法
237
查看次数