标签: firebird

将客户端应用程序迁移到FB 2.1

我使用Delphi 7和DBExpress.我想将我的应用程序完全迁移到firebird 2.1.我已经知道在服务器端做什么但在客户端不太确定.

在TSQLConnection组件中,我看到vendorLib属性指向GDS32.dll.driverName是Interbase,getDriverFunc是getSQLDriverINTERBASE.

我不知道为了我的连接使用fbclient.dll该怎么办.我尝试在vendorLib中将gds32.dll更改为fbclient.dll,但它在我的应用程序中导致了一些访问冲突.

有小费吗?

delphi firebird delphi-7

2
推荐指数
1
解决办法
644
查看次数

Firebird:如何从新添加的生成器为现有行分配id

我有一个表已经包含一些行,并没有主键.

我想现在添加一个主键,但为此我需要为现有行的主键字段设置唯一值.如何使用新添加的发电机完成?

sql firebird

2
推荐指数
1
解决办法
1559
查看次数

错误 -104 创建 Firebird 存储过程的命令意外结束

我想在 Firebird 中创建一个存储过程:

 CREATE PROCEDURE CalcPvIncome
 ( BeginDate date,
   EndDate   date,
   KwPrice   decimal (2,2) ) 
   
RETURNS ( Total_PV_Production decimal (9,2),
          Total_Income decimal (9,2) )
AS
BEGIN
  
   FOR SELECT SUM(ENERGY/1000), SUM((ENERGY/1000) * :KwPrice) 
       FROM PVPROD 
       WHERE proddate >= :BeginDate AND proddate <= :Enddate 
       INTO :Total_PV_Production , :Total_Income
       DO
       
       BEGIN
        SUSPEND ;
       END
END
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

发动机代码:335544569

引擎消息:动态 SQL 错误 SQL 错误代码 = -104 命令行意外结束 - 第 18 行,第 9 列

SQL语句:

SELECT 
   SUM(ENERGY/1000) AS Total_PV_Production, 
   sum((ENERGY/1000)*0.55) as Total_Income
FROM 
   PVPROD 
where  
   proddate …
Run Code Online (Sandbox Code Playgroud)

firebird stored-procedures firebird2.5

2
推荐指数
1
解决办法
2692
查看次数

如何在Firebird中将字段声明为varchar(max)

如何在Firebird中使用varchar(max)声明此表?

CREATE TABLE MyUser
(
Id   INT,   -- unique id of user
Signature   VARCHAR(max),  
Login   VARCHAR(50),   
UserPassword   VARCHAR(100),    
CONSTRAINT PK_MyUser PRIMARY KEY (Id) 
);
COMMIT;
Run Code Online (Sandbox Code Playgroud)

可能吗?

database firebird create-table

2
推荐指数
1
解决办法
5916
查看次数

部分键查询

假设有一个包含非主键列(A,B,C,D)的表,该表的索引是(A,B,C,D)

涉及(A,B,C,D)子集的查询会使用索引吗?如上所述,部分键查找存在哪种特质?

我对这在SQL Server,Sqlite,Firebird中的工作方式特别感兴趣。

sql sql-server sqlite indexing firebird

2
推荐指数
1
解决办法
534
查看次数

Firebird 2.1 - 简单的SELECT

我想结合一些数据,但一个简单的选择例子不起作用.选择现有表工作正常......

SELECT 1 as foo
Run Code Online (Sandbox Code Playgroud)

信息:

can't format message 13:896 -- message file C:\xxxx\firebird.msg not found.
Dynamic SQL Error.
SQL error code = -104.
corrupt pool.

在MySQL和Postgres这些简单的选择没问题.

感谢帮助!

sql firebird firebird2.1

2
推荐指数
1
解决办法
1243
查看次数

Firebird远程备份

我想备份一个firebird数据库.我正在使用gbak.exe实用程序.它工作正常.

但是,当我想从远程计算机进行备份时,备份文件存储在serveur文件系统中.有没有办法强制gbak实用程序下载备份文件?

谢谢

backup firebird

2
推荐指数
1
解决办法
2557
查看次数

从Node.js中的firebird中选择时,未知值<Buffer d2 f3 f0 e0 e5 e2 e0 20>

我是火鸟新手.我试图从DB中获取名称,但它返回:

<Buffer d2 f3 f0 e0 e5 e2 e0 20>
Run Code Online (Sandbox Code Playgroud)

这是什么意思?如何将其转换为可读字符?提前致谢

db.query('SELECT FIRST 10 * FROM client', function(err, result) {
    // IMPORTANT: close the connection 
    console.log(result[0].name)
    db.detach();
});
Run Code Online (Sandbox Code Playgroud)

database firebird buffer firebird2.1 node.js

2
推荐指数
1
解决办法
304
查看次数

Delphi中的Windows服务与数据库连接

我想了解一下情况.

我创建了一个Windows服务来完成应用程序的任务管理.

该服务连接到数据库(Firebird)并调用执行任务管理的组件.

此过程正常,但在Windows 10中,重新启动计算机后服务不会自动启动.在其他版本的Windows中,一切都很完美.在测试中,我已经确定如果我评论调用任务执行的方法,该服务通常在Windows 10上启动.

Procedure TDmTaskService.ServiceExecute(Sender: TService);
Begin
  Inherited;

  While Not Terminated Do
  Begin
    //Process;
    Sleep(3000);
    ServiceThread.ProcessRequests(False);
  End;

End;
Run Code Online (Sandbox Code Playgroud)

问题是组件或服务中没有生成任何异常.

通过分析Windows事件监视器,我发现我的服务发生的错误是超时,在这种情况下,服务无法在时间限制内连接到服务管理器.不再生成异常.

有没有人有任何关于连接数据库的Delphi制作的Windows服务?

我的源代码示例:

**Base class:**

unit UnTaskServiceDmBase;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;

type
  TDmTaskServicosBase = class(TService)
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;

var
  DmTaskServiceBase: TDmTaskServicosBase;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  DmJBServicosBase.Controller(CtrlCode);
end;

function TDmTaskServicosBase.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

end. …
Run Code Online (Sandbox Code Playgroud)

database windows delphi service firebird

2
推荐指数
1
解决办法
923
查看次数

在Firebird数据库中将DOUBLE列转换为TIMESTAMP

我有一个Firebird数据库,它将日期时间字段保存为DOUBLE.我创建了一个ColdFusion数据源连接,因此我可以远程查询数据.在正确返回其余数据的同时,datetime字段不可读.我尝试过使用CAST和CONVERT无济于事.如何将其转换为时间戳?

存储数据的一个例子是: 43016.988360

sql coldfusion firebird

2
推荐指数
1
解决办法
714
查看次数