FireDAC Insert 语句插入 FireBird 的 TimeStamp 字段的问题

FireBird 数据库,某个表,里面有一个字段是 TimeStamp。采用 FireDAC 的 TFDQuery 里面写 SQL 语句的方式,向表中插入数据。

SQL 语句如果写为: insert into MyTab values (:ID, :ADATE, :AMESSAGE)

那么,FdQuery 就有三个参数,其中 Params[1].Value := Now;   或者 Params[1].AsDateTime := Now; 或者 Params[1].AsSQLTimeStamp := DateTimeToSQLTimeStamp(Now); 最终在执行 ExecSQL 语句的时候,都会出异常,提示是数据格式转换错误。

没查到这里该如何对付 TimeStamp 字段的参数的数据类型。

但是,查到:http://docwiki.embarcadero.com/RADStudio/XE8/en/Date_and_Time_Macro_Functions_%28FireDAC%29   

这里面是 FireDAC 的内置函数的描述。不过我测试过上述网页中提到的很多函数,运行时都提示该函数不支持(也就是说 XE8 带的 FireDAC 内置函数支持不如上述网页里列出来的多)。

但是,关于 TimeStamp 的一个函数支持。因此,SQL 语句写成:

insert into SYS_INFO  values (:UID,  CURRENT_TIMESTAMP  ,  :AMESSAGE )

上述语句中, UID 是字符串类型的参数;AMESSAGE 是整数类型的参数。这个 FdQuery 有两个参数。中间那个时间字段,直接用  CURRENT_TIMESTAMP  这个内置函数。Windows 底下运行测试通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值