随笔分类 -  Firebird

Firebird常用系统表Sql语句
摘要:--得到数据库的所有者名称SELECT distinct RDB$OWNER_NAME AS DATABASE_OWNERFROM RDB$RELATIONSWHERE (RDB$SYSTEM_FLAG = 1);--根据表名得到表的主键SELECT RC.RDB$CONSTRAINT_NAME AS CONSTRAINT_NAME, I.RDB$RELATION_NAME AS TABLE_NAME, S.RDB$FIELD_NAME AS COLUMN_NAMEFROM RDB$RELATION_CONSTRAINTS RC LEFT JOIN RDB$INDICES I ON (I.RD 阅读全文
posted @ 2011-05-31 21:03 fyen 阅读(3074) 评论(0) 推荐(0)
FireBird存储过程
摘要:一般的,InterBase的存储过程分为两大类,它是根据客户端在调用存储过程时使用的不同方法划分的。一类是选择式存储过程,它返回一个数据集,客户端使用select语句调用存储过程,此时存储过程的作用好像和表、视图一样,选择式存储过程必须通过输出参数返回一个或多个数据行。另一类是执行式存储过程,它不返回数据集,客户端使用execute procedure来调用存储过程,这类存储过程大多数只执行一些动作而不返回数据行,当然它也可以返回输出参数信息。大家一定要注意,InterBase不存在这样的存储过程,它既返回数据集,同时又返回输出参数,你只能选择其一,不可能两者兼得,否则就会出错。1、创建存储. 阅读全文
posted @ 2011-05-10 23:46 fyen 阅读(5424) 评论(0) 推荐(1)
关于firbird存储过程
摘要:------------带参数存储过程CREATE PROCEDURE SP_PRODUTNAME( PRODUCT_ID CHAR(12) )RETURNS ( PRODUCT_NAME CHAR(20))ASbeginfor select product_name from products where product_id =:product_id into :product_name dosuspend;end execute procedure sp_produtname('001') ----------------返回多行的存储过程,不带参数 alter PROC 阅读全文
posted @ 2011-05-10 23:44 fyen 阅读(811) 评论(0) 推荐(0)
什么是MGA机制?
摘要:们知道,Borland一直强调Interbase的一个优点,它就是MGA机制。MGA机制当然也在Firebird上被采用。 那么,什么是MGA机制呢? MGA,全称Multi-Generational Architecture,中文名称多代版本机制,是一种并发处理机制。 在运行基于分布式系统时,常会发生几个客户端同时访问同一数据的情况,称为并发,并发如果处置不当,就会产生数据不一致。早期的数据库,全靠客户程序来处理并发,要手动加锁,手动解锁,现在的这些工作,DBMS已经自动处理了。并发处理,要采用加锁的方法才能避免冲突,加锁分两种,一种是悲观锁,还有一种是乐观锁。所谓悲观锁,是指当被加锁时,其 阅读全文
posted @ 2011-05-07 09:35 fyen 阅读(892) 评论(0) 推荐(0)
FB/IB多代事务结构详解--对FB事务最好的讲解
摘要:近来,接到很多人询问InterBase的事务处理问题。我在以前文章的基础上重新加以整理,写了这个说明InterBase事物处理的短文,希望对大家有所帮助。此外,我希望唐版主能把这个短文做成一个单独文件连接,便于大家查阅,谢谢。InterBase的事务管理我们知道,与其它关系数据库系统不同,InterBase采用独特的多代结构和版本事务来提高其性能,因此,对InterBase来说,事务就显得尤其重要。为保证其版本事务的工作,InterBase要求任何一个对数据库的访问都必须包含在一个事务中进行,也就是说,无论对数据库进行读select、插入insert、更改update还是删除delete都要先 阅读全文
posted @ 2011-05-07 09:33 fyen 阅读(1360) 评论(0) 推荐(0)
用IBExpert优化Firebird/Interbase技巧集
摘要:IBExpert 如何改善Firebird/Interbase数据库 的解决方案1.如何找到没使用索引的procedures, trigger和views2.如何找到procedures和triggers中典型的类型转换问题3.如何了解你的数据库服务器的垃圾回收功能是否工作4.如何改变一个数据库中所有表的字符集5.如何比较不同数据库元信息的异同并得到一个差异脚本6.如何对存储过程及触发器进行版本管理7.如何比较当前数据库与另一个数据库的对象8.如何自动创建insert、update、delete或其它操作的sql语句9.如何找到所有对当前对象有依赖关系的对象10.如何比较不同硬件环境和数据库服 阅读全文
posted @ 2011-05-04 23:51 fyen 阅读(3748) 评论(0) 推荐(0)
FireBird编程从入门到精通2
摘要:前言从来没有过这么一种数据库,能够像InterBase/FireBird一样富有激情。这是一种完全为程序员准备的数据库,就像瑞士军刀一样小巧、方便、实用。以往的数据库,不是太大太笨重(例如,Oracle、MS SQL、DB2),就是太简陋,功能不足(例如My SQL)。而InterBase/FireBird则是在两者之间找到了一个很好的平衡点,笔者不妨称之为“中型数据库”。随着硬件环境的不断发展,普通的个人电脑的计算能力越来越逼近并不太久以前的大型计算机的能力,这种趋势同时也大大推动了与此相适应的中型数据库的应用。中型数据库逐渐蚕食大型数据库的市场,这几乎是一个明显的趋势。随着软硬件条件的不断 阅读全文
posted @ 2011-04-12 22:48 fyen 阅读(4471) 评论(2) 推荐(1)
FireBird编程从入门到精通
摘要:从来没有过这么一种数据库,能够像InterBase/FireBird一样富有激情。这是一种完全为程序员准备的数据库,就像瑞士军刀一样小巧、方便、实用。以往的数据库,不是太大太笨重(例如,Oracle、MS SQL、DB2),就是太简陋,功能不足(例如My SQL)。而InterBase/FireBird则是在两者之间找到了一个很好的平衡点,笔者不妨称之为“中型数据库”。随着硬件环境的不断发展,普通的个人电脑的计算能力越来越逼近并不太久以前的大型计算机的能力,这种趋势同时也大大推动了与此相适应的中型数据库的应用。中型数据库逐渐蚕食大型数据库的市场,这几乎是一个明显的趋势。随着软硬件条件的不断发展 阅读全文
posted @ 2011-04-12 22:36 fyen 阅读(17824) 评论(0) 推荐(4)
SQLDialect为3时,使用FIBDataset,怎么成了只读数据集呢?
摘要:var ADOQ: TADOQuery; pFIBDatabase1: TpFIBDatabase; pFIBTransaction1, pFIBTransaction2: TpFIBTransaction; pFIBDataSet1: TpFIBDataSet; I: integer; FContent, FSolution: TStream;begin ADOQ:= TADOQuery.Create(nil); ADOQ.ConnectionString:= format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persis 阅读全文
posted @ 2011-03-14 23:09 fyen 阅读(1028) 评论(0) 推荐(0)
Execute Block
摘要:今天稍微研究了一下Execute Block,发现效果不错。开始一直以为Execute Block用于Procedure,后来仔细看文档才知道,实际用于客户端。当你在客户端组织比较复杂的数据,又不想写一个存储过程(比如,你的sql语句需要临时组成,而execute statement又有局限时)就可以用它。换句话说,就是你在客户端临时写个procedure。举例如下:表:user_tableidnamesalary===========1唐僧15002 孙悟空10003 猪八戒8004 沙和尚700为了显示词语句功能的强大,假定要求:需要给工资低于1000的人加上15%,高于1000的加上10 阅读全文
posted @ 2011-03-13 00:07 fyen 阅读(939) 评论(2) 推荐(0)
初步认识Firebird的Classic,superserver和embeded server
摘要:Firebird数据库分为Classic Server和Superserver两种体系这两种体系的区别: a,进程上:Classic Server为每个连接都创建一个独立的进程,都有自己独立的内存空间,越少的连接就占用越少的资源。 Superserver是所有的连接都在一个进程中,用多线程的提交处理,并且共享内存空间,当有多个并发连接的时候可以有更好的效果b,本地连接:在Windows上,两个体系都支持安全和可靠的本地连接,就只有服务进程需要权限去访问数据库c,多处理器:Classic Server支持多处理器,在有很多连接的时候有更好性能,而且相互之间没有影响Superserver不支持,并 阅读全文
posted @ 2011-03-04 00:09 fyen 阅读(3333) 评论(1) 推荐(1)