标签: anydac

在按下dbnavigator删除按钮后,如何根据决定中止删除记录?

dbnavigator按下删除按钮后,我可以根据决定中止删除记录吗?我检查了beforeAction事件

if Button = nbDelete then  
  //check if not OK then

Button := nbCancel;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.任何帮助?

我正在使用 DelPhi XE2, anyDac Components

delphi ttnavigator delphi-xe2 anydac

6
推荐指数
1
解决办法
4304
查看次数

为参数化查询的参数赋值时的赋值错误

我正在使用Delphi XE2和AnyDac组件以及Advantage Database 10.在我的代码中,我使用的参数化查询如下:

q.SQL.Text := 'SELECT * FROM Table1 ' +
  'LEFT JOIN Table2 ON (Table1.ID = Table1 .ID_Table2) ' +
  'WHERE ' +
  ':0 BETWEEN Table1.StartAm AND Table1.EndeAm ' +
  'AND Table2 = :1';
q.Params[0].Value := AStartDateTime;
q.Params[1].Value := AIDRessourcenGruppe;
q.Open;
Run Code Online (Sandbox Code Playgroud)

这最终会出现异常:

Exception der Klasse EADSNativeException mit der Meldung'[AnyDAC] [Phys] [ADS] Error 7200:AQE Error:State = 22018;
NativeError = 2112; [iAnywhere Solutions] [Advantage SQL Engine]分配错误'aufgetreten.

当然AStartDateTime是一个有效的delphi TDateTime值,AIDRessourcenGruppe是一个整数值.

有趣的是,这两个变体有效:

q.SQL.Text := 'SELECT * FROM Table1 ' +
  'LEFT JOIN Table2 …
Run Code Online (Sandbox Code Playgroud)

delphi parameters advantage-database-server delphi-xe2 anydac

5
推荐指数
1
解决办法
1079
查看次数

将长 Unicode 字符串传递给 FireDac TADQuery 参数

我使用 AsWideString 将 Unicode 字符串传递给 TADQuery 参数。

ADQuery.Params.ParamByName('MyFld').AsWideString
Run Code Online (Sandbox Code Playgroud)

但是当字符串变得太长时,我收到错误:

[MyFld]. Max len = [8002], actual len = [10522]
Run Code Online (Sandbox Code Playgroud)

然后我决定使用 AsMemo 属性

ADQuery.Params.ParamByName('MyFld').AsMemo
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我的 Unicode 字符串无法正确显示。

解决这两个问题的方法是什么?

delphi anydac firedac

5
推荐指数
2
解决办法
2576
查看次数

如何在 Firebird 3.0 上启用线压缩

我使用Firebird和Delphi,我想通过线压缩实现通过互联网访问;但是我无法激活它。

我已按照本文档中的步骤获取新参数(我能找到的少数参数之一) How to enable WireCompression on Firebird 3.0 using FireDAC

在测试中,我使用 Windows server 2012 R2 Firebird:Firebird-3.0.4.33054_0_Win32(32 bits) 也复制到可执行文件夹。fbclient.dll zlib1.dll(idem 服务器和客户端)使用wirecompression=true 创建了firebird.conf。我在应用程序的 Firedac 中给出了 wirecompression=true 。

为什么我无法激活 P15:CZ 压缩?

Sending connection info for the example:
================================
Connection definition parameters
================================
DriverID=FB
Database=miservidor001:C:\sysdat\C100\gestdat03.fdb
User_Name=SYSDBA
PassWord=*****
WireCompression=true
================================
FireDAC info
================================
Tool = RAD Studio 10.2
FireDAC = 16.0.0 (Build 88974)
Platform = Windows 32 bit
Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR
================================
Client info
================================
Loading driver FB ...
Brand = Firebird
Client version …
Run Code Online (Sandbox Code Playgroud)

delphi firebird anydac firedac firebird-3.0

4
推荐指数
1
解决办法
1711
查看次数

使用带有firebird的anydac(now firedac)脚本的参数获取错误

我无法在没有错误的情况下执行以下脚本..它在delphi中针对firebird数据库运行.

var
  vScript: TADScript;

begin
  vScript := TADScript.Create(nil);
  vScript.Connection := xConnection;
  vScript.Transaction := xTransaction;

  with vScript.Params.Add do
    begin
      Name := 'DEFVAL'; // also tried ':DEFVAL'
      AsInteger  := 1;
    end;

  with vScript.SQLScripts.Add do
    SQL.Text := 'ALTER TABLE "PERSON" add "AGE" INTEGER DEFAULT :DEFVAL';

  vScript.ValidateAll;
  vScript.ExecuteAll;
end
Run Code Online (Sandbox Code Playgroud)

它给出了'令牌未知 - 第1行,第48列',参数(:DEFVAL)位置的错误

我已经尝试先分配sql文本然后调用Params.FindParam,但它不在列表中.这适用于查询.

不使用参数,只包含SQL字符串中的默认值,但此代码用作更大框架工作的一部分,该选项是最后的选择.

delphi firebird anydac firedac

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

执行包含BLOB数据的Array DML命令是否可行且有意义?

是否可以执行在参数数组中传递BLOB字段数据的Array DML INSERTUPDATE语句?我问题中更重要的部分,如果可能的话,包含BLOB数据的Array DML命令是否仍然比逐个执行命令更有效?

我注意到TADParam有一个AsBlobs索引属性,所以我认为它可能是可能的,但我还没有尝试过这个,因为没有提及性能也没有示例显示这一点,因为索引属性的类型RawByteString不太适合我的需要.

我正在使用FireDAC并使用SQLite数据库(Params.BindMode = pbByNumber因此我使用INSERT多个本机SQLite VALUES).我的目标是尽可能快地存储大约10万条包含非常小的BLOB数据(每条记录大约1kB)的记录(以FireDAC的抽象成本计算).

delphi sqlite dml anydac firedac

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

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