• Firebird数据库相关备忘录


     

    Firebird数据库中有一些很特别的东西,很好用,但由于平时用的不多,记在这里,以备以后用到时查询。

     

     

    1、以ADO 的OLE ODBC驱动方式访问 Firebird,可以使用如下连接串:

    FBConn:='Provider=MSDASQL.1;Driver=Firebird/InterBase(r) driver;Dbname=F:TEST.FDB;CHARSET=NONE;UID=SYSDBA;PWD=masterkey';

     

     

     

    2、序列生成器,值是bigint 类型

     

     

    在做自增加字段时使用,标准教程上都是写在触发器中,我觉得写在用户SQL中使用更方便,也就是从前台调用序列生成器,生成ID值,然后从前台更新到后台去。后台的ID字段只要是普通的int值即可。

    create sequence CUSTOMER;
    
    set GENERATOR CUSTOMER to 200;
    
    select gen_id(CUSTOMER, 1) from RDB$DATABASE;
    
    GENERATOR 是 遗留保留字,sql-99支持 sequence 关键字,fb也是支持的。
    
    CREATE { SEQUENCE | GENERATOR } <名字>
    
    DROP { SEQUENCE | GENERATOR } <名字>
    
    SET GENERATOR <名字> TO <起始值> 这个好象不符合SQL语法的精神,下面的alter才是标准的语感
    
    ALTER SEQUENCE <名字> RESTART WITH <起始值>
    
    GEN_ID (<名字>, <增长值>)
    
    NEXT value FOR <名字>
    
    NEXT value FOR 语法也是标准SQL语法,可以用的序列生成器上:
    
    INSERT INTO EMPLOYEE (ID, NAME)
    
    valueS (NEXT value FOR S_EMPLOYEE, 'John Smith');

     

     

    3、内建了IIF函数,IIF (<search_condition>, <value1>, <value2>),作为case的快捷方式。

     

     

    4、ROWS 语法,特别适合分页使用

     

    SELECT ...

    [ORDER BY <expr_list>]

    ROWS <expr1> [TO <expr2>]

     

     

    还有类似的语法,与上述ROWS类似的语句是:

    FIRST (<expr2>-<expr1>+1) SKIP (<expr1> - 1)

     

     

    5、EXECUTE BLOCK 语句

     

    这个语句相当于动态建立与执行一个存储过程。或者说动态执行一个类似于存储过程的语句块。

     

     

    SQL语言的扩展语句 EXECUTE BLOCK 使得在 SELECT 语句规范中可以使用"动态 PSQL"。它有这样的效果,如果是存储过程中的话,将允许一个PSQL自包含代码动态SQL语句中执行。

     

    语法格式:

     

     

    EXECUTE BLOCK [ (param datatype = ?, param datatype = ?, ...) ]

    [ RETURNS (param datatype, param datatype, ...) }

    AS

    [DECLARE VARIABLE var datatype; ...]

    BEGIN

    ...

    END

     

     

    例如:

     

     

    EXECUTE BLOCK (X INTEGER = :X)

    RETURNS (Y VARCHAR)

    AS

    DECLARE V INTEGER;

    BEGIN

    INSERT INTO T(...) valueS (... :X ...);

    SELECT ... FROM T INTO :Y;

    SUSPEND;

    END

     

     

    6、COMMENT 语句


    COMMENT 语句,用来设置元数据描述,这个非常有意思。

    语法格式:

    COMMENT ON DATABASE IS {'txt'|NULL};
    COMMENT ON <basic_type> name IS {'txt'|NULL};
    COMMENT ON COLUMN tblviewname.fieldname IS {'文字内容'|NULL};
    COMMENT ON PARAMETER procname.parname IS {'txt'|NULL};

     

     

    7、衍生表

     

    MS MSQL 叫在线视图吧,语法类似于:

     

    select * from (select * from tbl) as a inner join tbl2 b on a.id=b.id

     

    查询结果作为表来使用。

     

     

    8、FB2.0 发布时的文档吧,这里有个链接!http://www.mesig.com/forum/th-abb-1

  • 相关阅读:
    file.delete()删除文件失败
    Axure RP Extension for Chrome插件离线安装
    C#---EF映射MySQL
    C#--二维数组
    MySQL--增删改查分页存储过程以及事务
    C# --MVC实现简单上传下载
    配置SQLServer,允许远程连接
    C#——工厂模式
    C#--条形码和二维码的简单实现
    C#—接口和抽象类的区别?
  • 原文地址:https://www.cnblogs.com/inhesoft/p/4175851.html
Copyright © 2020-2023  润新知