linux连接Db2数据库时报58031_强大的跨数据库访问组件 UniDAC使用教程:条件执行(IF)...

Universal Data Access Components (UniDAC)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi,C++Builder, Lazarus (以及 Free Pascal), Mac OS X, iOS,Android,Linux和64和32位的FreeBSD等等。我们将长期的经验集于这个小组件,提供统一的数据库连接访问(如oracle、微软SQL等等)。这意味着你可以在你的项目之间轻松地切换不同的数据库,以及创建跨数据库应用程序接口。

9e384ab9dbd91ffba8672a03e9342413.png

条件执行(IF)

为了使UniSQL更灵活,UniSQL支持将SQL代码有条件地包含在结果语句中。如下所示:

{if my_macro} STATEMENT_1 {else} STATEMENT_2 {endif}

如果定义了宏 my_macro,则返回 STATEMENT_1,否则表达式的结果是STATEMENT_2 。 例如:

{if Oracle} SELECT * FROM dept{else} SELECT * FROM test.dept{endif}

{else}子句可以省略。 下面是一个更复杂的例子:

SELECT {if Oracle}RowId, {endif} DeptNo, DName FROM dept

请注意,你可以使用嵌套的 {if ...} 结构来继续分支下去。你也可以使用预定义的宏。


文字和标识符

UniDAC为日期,时间戳和带引号的标识符提供通用语法。它的用法类似于宏的用法。 请注意,此功能不适用于 OLE DB,ODBC 和 DB2 数据提供程序。

日期和时间常数

在日期/时间常量中,日期的部分用连字符分隔,时间部分用冒号分隔,并且在两个部分之间有空格。下表说明了日期/时间格式:

6da17e02f7047b934d333bbfebc87ffb.png

以下SQL语句:

 SELECT * FROM emp WHERE HIREDATE>{date '1982-01-15'}

在MySQL中为

 SELECT * FROM emp WHERE HIREDATE>CAST('1982-01-15' AS DATETIME)

在Oracle中为

 SELECT * FROM emp WHERE HIREDATE>TO_DATE('1982-01-15', 'YYYY-MM-DD')

通用引用标识符

所有数据库服务器都支持对包含空格或点等特殊符号的标识符进行引用。 UniDAC允许普遍包装标识符,以便引用能适用于每个数据库服务器。使用以下语法:

"identifier"

例如,表达式“table1”.“field1”在 Oracle 和 PostgreSQL 中变成“table1”.“field1”,在 MS SQL Server 中变成 [table1].[field1],在 MySQL 服务器变成 `table1`.`field1`。 不要混淆单引号,它用于包装字符串常量。

本文属于上一篇文章“条件执行(IF)”、“文字和标识符”部分。下一篇文章将为大家带来注释和SQL函数,敬请期待~

点击“了解更多”下载产品最新版

↓↓↓

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值