关于存储过程和触发器中使用链接服务器的问题

BestAns1 2003-08-30 03:59:48
我在A服务器上对B服务器建立了一个链接服务器,通过查询分析器已经可以执行在B服务器上的数据查询和更改,但是在A上的存储过程访问B中的表时,被告知以下错误

错误7405: 异类查询要求为连接设置ANSI_NULL和ANSI_WARNINGS选项.这将确保一致的查询语义。

我该怎么做呢?

  有时候还有一个错误: 该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
(我已经启动了 SQL DTC)

怎么解决?
...全文
42 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
BestAns1 2003-08-31
  • 打赏
  • 举报
回复
我就是用的 Microsoft OLE DB Provider for SQL Server 啊!
leimin 2003-08-30
  • 打赏
  • 举报
回复
在MSSQLSERVER中,只提供下面的OLEDB的连接可以支持Use in distributed transactions
你可以试试改变OLEDB的Provider
Microsoft OLE DB Provider for SQL Server
Microsoft OLE DB Provider for ODBC
Microsoft OLE DB Provider for Oracle version 2.6
BestAns1 2003-08-30
  • 打赏
  • 举报
回复
现在只有第二个错误:
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。

什么意思呢?
BestAns1 2003-08-30
  • 打赏
  • 举报
回复
还是不行啊,那两条我都加上去了,能不能给一个完整的例子呢?
wengdy2000 2003-08-30
  • 打赏
  • 举报
回复
up!
up!
up!
zjcxc 2003-08-30
  • 打赏
  • 举报
回复
楼上两位说得没错.

楼主检查一下.
txlicenhe 2003-08-30
  • 打赏
  • 举报
回复
SET ANSI_NULL_DFLT_ON on
SET ANSI_WARNINGS on

create proc ...



SET ANSI_NULL_DFLT_ON off
SET ANSI_WARNINGS off
pengdali 2003-08-30
  • 打赏
  • 举报
回复
请在查询分析器中创建这个存储过程,以后这个存储过程在企业管理和查询分析器都能修改了。

对于存储过程,SQL Server 使用最初创建存储过程时的 SET ANSI_NULLS 设置值。无论随后何时执行存储过程,SET ANSI_NULLS 的设置都还原为其最初使用的值并生效。当在存储过程内唤醒调用 SET ANSI_NULLS 时,其设置不更改。

在执行分布式查询时应将 SET ANSI_NULLS 设置为 ON。

在执行分布式查询时应将 ANSI_WARNINGS 设置为 ON。

企业管理中的ANSI_NULLS和ANSI_WARNINGS选项不对,但没有方法改动。在查询分析器可以设置ANSI_NULLS和ANSI_WARNINGS选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。

就是:
create proc 名
as
SET ANSI_NULL_DFLT_ON on --注意
SET ANSI_WARNINGS on

select * from open...
以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言的具体应用。 第1章 SQL语言的概述 1.1 认识SQL语言 1.1.1 什么是SQL语言 1.1.2 SQL的历史与发展 1.1.3 SQL的功能和优点 1.2 认识数据库 1.2.1 什么是数据库 1.2.2 数据库系统的结构 1.2.3 数据库系统的工作流程 1.2.4 常见的SQL数据库管理系统 1.3 数据模型 1.3.1 关系数据库模型 1.3.2 数据模型的构成 1.3.3 常见的数据模型 1.4 关系型数据库 1.4.1 关系型数据库的定义 1.4.2 关系型数据库与表 1.4.3 主键与外键 1.4.4 字段约束 1.4.5 数据的完整性 1.4.6 关系数据库设计原则 1.5 SQL开发环境 1.5.1 SQL环境介绍 1.5.2 SQL的层次结构 1.5.3 SQL环境的对象 1.5.4 SQL环境的程序系统 1.6 SQL语句基础 1.6.1 SQL常量 1.6.2 SQL表达式 1.6.3 SQL数据类型 1.6.4 注释符 1.6.5 批处理 1.6.6 SQL语句的执行 1.7 SQL语法知识 1.7.1 SQL语法结构 1.7.2 常用的SQL语句 1.8 小结第2章 设计数据库 2.1 设计数据库基础 2.1.1 数据库设计定义 2.1.2 设计数据库的意义 2.1.3 进行数据库设计的方法 2.2 数据实体和联系 2.2.1 实体、属性与联系 2.2.2 一对一联系 2.2.3 一对多联系 2.2.4 多对多联系 2.3 规范化准则 2.3.1 范式 2.3.2 第一范式 2.3.3 第二范式 2.3.4 第三范式 2.3.5 第四范式 2.4.小结第2篇 数据库管理篇第3章 数据库的相关操作 3.1 创建数据库 3.1.1 SQL标准创建数据库的语法 3.1.2 使用SQL语句创建数据库 3.2 删除数据库 3.2.1 SQL标准删除数据库的语法 3.2.2 使用SQL语句删除数据库 3.3 修改数据库 3.3.1 修改数据库语法 3.3.2 使用SQL语句修改数据库 3.4 管理数据库 3.4.1 扩充与压缩数据库 3.4.2 导入与导出数据 3.4.3 数据库的备份与恢复 3.4.4 使用sp_helpdb查看数据库信息 3.5 小结第4章 数据表的相关操作 4.1 SQL的数据表 4.1.1 数据表的结构 4.1.2 数据表的种类 4.2 创建数据表 4.2.1 创建数据表的语句结构 4.2.2 创建基本表 4.2.3 非空约束 4.2.4 DEFAULT指定缺省值 4.3 修改数据表 4.3.1 修改数据表的语句结构 4.3.2 给数据表增添新列 4.3.3 修改数据表的列 4.3.4 删除数据表的列 4.4 数据表的删除 4.4.1 删除数据表的语句结构 4.4.2 使用SQL语句删除数据表 4.5 数据表的重命名 4.5.1 重命名数据表的语句 4.5.2 使用SQL语句重命名数据表 4.6 小结第5章 索引与视图 5.1 索引的基础知识 5.1.1 索引的概念 5.1.2 索引的类型 5.1.3 索引的结构 5.2 创建索引 5.2.1 创建索引的语句结构 20.3.3 子查询的实现 20.3.4 复合查询的实现 20.4 运算符与表达式的应用 20.4.1 连接数据表的实现 20.4.2 算术运算符的应用 20.4.3 表达式的应用 20.5 数据维护与触发器的应用 20.5.1 添加数据的实现 20.5.2 更新数据的实现 20.5.3 删除数据的实现 20.5.4 在VB.NET应用触发器20.6 小结第21章 VB 6.0与SQL Server的开发与应用 21.1 VB 6.0开发环境 21.1.1 VB 6.0介绍 21.1.2 VB 6.0的版本 21.1.3 VB 6.0开发环境 21.2 VB 6.0连接数据库 21.2.1 VB 6.0的数据库控件介绍 21.2.2 数据库连接举例 21.3 数据查询应用 21.3.1 普通数据查询的实现 21.3.2 连接查询的实现 21.3.3 子查询的实现 21.3.4 复合查询的实现 21.4 运算符与表达式的应用 21.4.1 连接数据表的实现 21.4.2 算术运算符的应用 21.4.3 表达式的应用 21.5 数据维护操作的应用 21.5.1 添加数据的实现 21.5.2 更新数据的实现 21.5.3 删除数据的实现 21.6 触发器存储过程的应用 21.6.1在VB 6.0应用触发器 21.6.2在VB 6.0应用存储过程 21.7 小结第22章 VC++6.0与SQL Server的开发与应用 22.1 VC++6.0开发环境 22.1.1 VC++6.0介绍 22.1.2 MFC编程 22.1.3 VC++6.0开发环境 22.2 VC++6.0连接数据库 22.2.1 ADO数据控件介绍 22.2.2 数据库连接举例 22.3 数据查询应用 22.3.1 普通数据查询的实现 22.3.2 连接查询的实现 22.3.3 子查询的实现 22.3.4 复合查询的实现 22.4 运算符与表达式的应用 22.4.1 连接数据表的实现 22.4.2 算术运算符的应用 22.4.3 表达式的应用 22.5 数据维护操作的应用 22.5.1 添加数据的实现 22.5.2 更新数据的实现 22.5.3 删除数据的实现 22.6 小结第23章 PHP访问 SQL Server 2005 23.1 PHP开发环境 23.1.1 PHP简介及其特点 23.1.2 PHP开发环境的安装 23.2 PHP连接SQL Server服务器 23.2.1 使用PHP的MSSQL扩展 23.2.2 PHP连接SQL Setver的必要条件 23.3 使用PHP存取SQL Server数据库 23.3.1 选择操作的数据库 23.3.2 在数据库创建表 23.3.3 删除存在的数据表 23.4 对数据库表的操作 23.4.1 向表添加记录 23.4.2 浏览表记录 23.4.3 修改已有记录 23.4.4 删除指定记录 23.5 可回复留言板的开发(PHP+SQL Server) 23.5.1 数据表的设计 23.5.2 配置文件的创建 23.5.3 创建系统运行的表 23.5.4 创建留言显示模块 23.5.5 创建留言添加模块 23.5.6 进入留言管理模块 23.5.7 创建留言修改模块 23.5.8 创建留言删除模块 23.6 小结 5.2.2 创建非簇索引 5.2.3 创建簇索引 5.2.4 创建惟一索引 5.2.5 创建复合索引 5.3 删除索引 5.3.1 删除索引的语句结构 5.3.2 使用SQL语句删除索引 5.4 视图的基础知识 5.4.1 视图概述 5.4.2 视图的优点与缺点 5.5 视图的基本操作 5.5.1 创建视图的基本语句结构 5.5.2 使用SQL语句创建视图 5.5.3 修改视图的语句结构 5.5.4 重命名视图的名称 5.5.5 使用SQL语句修改视图 5.5.6 删除视图的语句结构 5.5.7 使用SQL语句删除视图 5.6 视图的应用 5.6.1 利用视图简化表的复杂连接 5.6.2 利用视图简化复杂查询 5.7 小结第3篇 SQL查询篇第6章 简单的SELECT语句查询 6.1 查询的基本结构 6.1.1 了解SELECT语句 6.1.2 SELECT语句的语法格式 6.1.3 SELECT语句的执行步骤 6.2 简单的查询语句 6.2.1 查询表指定的字段 6.2.2 查询所有的字段 6.2.3 使用DISTINCT去除重复信息 6.2.4 使用别名 6.3 排序与分组 6.3.1 升序排序与降序排序 6.3.2 多列字段排序 6.3.3 使用GROUPBY子句对查询结果进行分组 6.3.4 HAVING子句的应用 6.4 条件查询 6.4.1 WHERE单条件语句查询 6.4.2 运算符查询 6.4.3 BETWEEN运算符范围筛选 6.4.4 使用TOP子句 6.4.5 NULL的判断 6.5 模糊查询 6.5.1 使用LIKE运算符进行查询 6.5.2 使用“_”通配符进行查询 6.5.3 使用“%”通配符进行查询 6.5.4 使用“[]”通配符进行查询 6.5.5 使用“[^]”通配符进行查询 6.6 小结第7章 运算符与表达式相关查询 7.1 逻辑运算符 7.1.1 逻辑与运算符 7.1.2 逻辑或运算符 7.1.3 逻辑运算符的组合使用 7.2 IN运算符 7.2.1 IN运算符的使用 7.2.2 NOT IN运算符的使用 7.3 NOT运算符与BETWEEN运算符 7.3.1 N0T运算符的使用 7.3.2 NOT运算符与BETWEEN运算符的组合应用 7.4 数学运算符 7.4.1 数学运算符的种类 7.4.2 数学运算符的应用 7.5 集合查询运算符 7.5.1 UNION运算符 7.5.2 INTERSECT运算符 7.6运算符的组合应用 7.6.1 逻辑运算符与IN运算符的组合应用 7.6.2 逻辑运算符与NOT运算符的组合应用 7.6.3 逻辑运算符与数学运算符的组合应用 7.6.4 逻辑运算符与集合运算符的组合应用 7.6.5 数学运算符与NOT运算符的组合应用 7.6.6 数学运算符与IN运算符的组合应用 7.6.7 数学运算符与集合运算符的组合应用 7.7 SQL的表达式 7.7.1 CAST表达式的应用 7.7.2 CASE表达式的应用 7.8 小结第8章 SQL函数 8.1 SQL函数基础 8.1.1 SQL语句函数 8.1.2 常用的SQL语句函数 8.2 日期函数和数学运算函数 8.2.1 日期时间函数 8.2.2 CONVERT函数转换日期、时间 8.2.3 数据运算函数 8.3 字符串函数 8.3.1 字符串处理函数介绍 8.3.2 字符转换函数 8.3.3 去字符串空格函数 8.3.4 取字符串长度的函数 8.3.5 查询包含部分字符串内容的数据 8.3.6 颠倒字符串的顺序 8.3.7 字符串替换 8.4 聚合函数 8.4.1 聚合函数概述 8.4.2 SUM函数运算 8.4.3 MAX函数运算 8.4.4 MIN函数运算 8.4.5 AVG函数运算 8.4.6 COUNT函数运算 8.4.7 聚合函数的组合使用 8.5 小结第9章 连接查询 9.1 多表连接 9.1.1 多表连接的优点 9.1.2 简单的两表连接 9.1.3 多表连接举例 9.1.4 UNION JOIN连接表 9.2 自连接与自然连接 9.2.1 自连接 9.2.2 自然连接 9.3 内连接 9.3.1 等值连接 9.3.2 不等值连接 9.3.3 使用内连接实现多表连接 9.3.4 在内连接使用聚合函数 9.4 外连接 9.4.1 左外连接 9.4.2 右外连接 9.4.3 全外连接 9.4.4 在外连接使用聚合函数 9.5 交叉连接 9.5.l 交叉连接的定义 9.5.2 交叉连接举例 9.6 多表连接的综合应用 9.6.1 内连接与左外连接的综合应用 9.6.2 内连接与右外连接的综合应用 9.6.3 UNION集合运算与多表连接应用 9.7 小结第10章 子查询 10.1 子查询的简单应用 10.1.1 子查询概述 10.1.2 在多表查询使用子查询 10.1.3 在子查询使用聚合函数 10.1.4 使用ANY或ALL运算符 10.1.5 使用子查询创建视图 10.2 使用IN语句的子查询 10.2.1 简单的IN语句子查询 10.2.2 使用IN子查询实现集合交运算 lO.2.3 使用IN子查询实现集合差运算 10.3 使用EXISTS语句的子查询 10.3.1 简单的EXISTS语句子查询 10.3.2 使用EXISTS子查询实现两表交集 10.3.3 使用EXISTS子查询实现两表并集 10.3.4 使用NOT EXISTS的子查询 10.4 相关子查询 10.4.1 使用IN引入相关子查询 10.4.2 使用比较运算符引入相关子查询 10.4.3 在HAVING子句使用相关子查询 10.5 UNIQUE子查询与嵌套子查询 10.5.1 UNIQUE子查询 10.5.2 嵌套子查询 10.6 小结第4篇 T-SQL开发常用操作篇第11章 数据的维护操作 11.1 数据的插入操作 11.1.1 INSERT语句的基本语法 11.1.2 插入单条记录 11.1.3 NULL的插入 11.1.4 由VALUES关键字插入多行数据 11.1.5 使用SELECT语句插入数据 11.1.6 通过视图插入数据 11.1.7 使用子查询插入数据 11.2 数据的更新操作 11.2.1 UPDATE语句的基本语法 11.2.2 使用UPDATE语句更新指定的列值 11.2.3 数据字段NULL的更改 11.2.4 更新全部数据 11.2.5 利用子查询更新数据 11.2.6 通过视图更新表数据 11.3 数据的删除操作 11.3.1 DELETE语句的语法结构 11.3.2 删除指定行的数据 11.3.3 删除所有数据 11.3.4 通过视图删除表数据 11.3.5 使用子查询删除数据 11.3.6 使用TRUNCATE TABLE语句 11.4 小结第12章 完整性控制 12.1 完整性约束概述 12.1.1 数据的完整性简介 12.1.2 完整性约束的类型 12.1.3 数据完整性的意义 12.2 约束 12.2.1 DEFAULT约束 12.2.2 CHECK约束 12.2.3 PRIMARY KEY约束 12.2.4 UNIQUE约束 12.2.5 FOREIGN KEY约束 12.2.6 NOT NULL约束 12.2.7 列约束和表约束 12.3 规则 12.3.1 创建规则 12.3.2 规则的绑定与松绑 12.4 域约束与断言 12.4.1 域与域约束 12.4.2 利用断言创建多表约束 12.5 默认值 12.5.1 创建默认值 12.5.2 默认值的绑定与松绑 12.6 小结第5篇 T-SQL高级编程篇第13章 存储过程 13.1 存储过程概述 13.1.1 存储过程的基本概念 13.1.2 存储过程的优缺点 13.2 存储过程常用的流控制语句 13.2.1 IF...LSE语句 13.2.2 BEGIN...END语句 13.2.3 DECLARE语句 13.2.4 GOTO语句 13.2.5 WAITFOR语句 13.2.6 WHILE、BREAK和CONTINUE语句 13.2.7 PRINT语句 13.2.8 RETURN语句 13.2.9 注释 13.3 创建与执行存储过程 13.3.1 创建存储过程 13.3.2 创建带参数的存储过程 13.3.3 创建带0UTPUT返回,参数的存储过程 13.3.4 执行存储过程 13.4 存储过程的查看、修改和删除 13.4.1 系统存储过程 13.4.2 存储过程的查看 13.4.3 存储过程的重命名 13.4.4 修改存储过程 13.4.5 存储过程的删除 13.5 Oracle数据库的控制流语句 13.5.1 IF条件语句 13.5.2 LOOP循环语句 13.5.3 FOR循环语句 13.5.4 WHILE循环语句 13.5.5 GOTO语句 13.6 Oracle数据库存储过程 13.6.1 0racle数据库创建存储过程 13.6.2 Oracle数据库存储过程的执行 13.7 小结第14章 触发器 14.1 触发器的基础知识 14.1.1 触发器的概念 14.1.2 触发器的种类 14.1.3 触发器的组成 14.1.4 触发器的优点 14.1.5 触发器执行环境 14.2 触发器的创建 14.2.1 创建触发器的语法结构 14.2.2 Inserted表和Deleted表 14.2.3 INSERT触发器 14.2.4 UPDATE触发器 14.2.5 DELETE触发器 14.2.6 INSTEAD OF触发器 14.2.7 嵌套触发器 14.2.8 递归触发器 14.3 查看触发器 14.3.1 使用系统存储过程sp_help查看触发器 14.3.2 使用系统存储过程sp_helptext查看触发器 14.3.3 使用系统存储过程sp_depengs查看触发器 14.4 触发器的修改及删除 14.4.1触发器的修改 14.4.2触发器的删除 14.5 Oracle数据库触发器 14.5.1 Oracle触发器类型 14.5.2 触发器的创建 14.5.3 Oracle触发器的启用与禁用 14.5.4 0racle触发器的删除 14.6 小结第15章 游标 15.1 游标的定义 15.1.1 游标的基本概念 15.1.2 游标的分类 15.1.3 游标的作用及其应用 15.2 游标的使用 15.2.1 游标的创建 15.2.2 打开游标 15.2.3 关闭游标 15.2.4 释放游标 15.2.5 使用游标 15.2.6 检索游标 15.2.7 游标变量 15.3 游标的展使用 15.3.1 用于UJPDATE操作的可更新游标 15.3.2 用于DELETlE操作的可更新游标 15.3.3 可更新游标的综合操作 15.3.4 使用@@CURSOR_ROWS全局变量确定游标的行数 15.3.5 使用@@FETCh_STATJS全局变量检测FETCH操作的状态 15.3.6 使用系统过程管理游标 15.4 Oracle游标的使用 15.4.1 显式游标与隐式游标 15.4.2 游标属性 15.4.3 参数化游标 15.4.4 游标的循环 15.5 小结第16章 事务控制和锁定 16.1 事务 16.1.1 事务概述 16.1.2 事务的特性 16.1.3事务的分类 16.2 事务控制 16.2.1 事务控制操作 16.2.2 开始事务 16.2.3 提交事务 16.2.4 回滚事务 16.2.5 设置事务保存点 16.2.6 终止事务 16.3 并发控制 16.3.1 并发操作的问题 16.3.2 事务隔离级别 16.4 锁定 16.4.1 锁的作用及含义 16.4.2 锁的类型 16.4.3 SQL Server表级锁的使用 16.4.4 设置隔离级别实现并发控制 16.4.5 死锁及其处理 16.5 小结第17章 SQL安全 17.1 SQL安全概述 17.1.1 SQL安全的重要性 17.1.2 SQL安全的对象和权限 17.2 用户管理 17.2.1 创建SQL用户 17.2.2 删除SQL用户 17.3 角色管理 17.3.1 角色的优点 17.3.2 创建角色 17.3.3 删除角色 17.3.4 授予角色 17.3.5 取消角色 17.4 权限管理 17.4.1 授予权限 17.4.2 撤销权限 17.4.3 查询权限控制 17.4.4 插入操作权限控制 17.4.5 删除操作权限控制 17.4.6 更新操作权限控制 17.5 SQL Server的安全管理 17.5.1 SQL Server的用户管理 l7.5.2 SQL Server的角色管理 l7.5.3 SQL Server的权限管理 17.6 Oracle的安全管理 17.6.1 Oracle的用户管理 17.6.2 Oracle的权限管理 17.7小结第18章 嵌入式SQL 18.1 SQL的调用 18.1.1 直接调用SQL 18.1.2 SQL调用层接口(CLI) 18.2 嵌入式SQL的使用 18.2.1 嵌入式SQL 18.2.2 SQL通信区 18.2.3 主变量 18.2.4 在嵌入式SQL使用SQL语句 18.2.5 在嵌入式SQL使用游标 18.3 嵌入式SQL在SQL Server应用 18.3.1 嵌入式SQL代码 18.3.2 预编译文件 18.3.3 设置连接VC++6.O 18.3.4 编译运行程序 18.4 小结第6篇 T-SQL结合流行语言进行开发篇第19章 C#与SQL Server的开发与应用 19.1 C#开发环境 19.1.1 C#介绍 19.1.2 C#开发环境 19.2 C#连接数据库 19.2.1 C#的数据库控件介绍 19.2.2 数据库连接举例 19.3 数据查询应用 19.3.1 普通数据查询的实现 19.3.2 连接查询的实现 19.3.3 子查询的实现 19.3.4 复合查询的实现 19.4 运算符与表达式的应用 19.4.1 连接数据表的实现 19.4.2 算术运算符的应用 19.4.3 表达式的应用 19.5 数据维护操作的应用 19.5.1 添加数据的实现 19.5.2 更新数据的实现 19.5.3 删除数据的实现 19.6 触发器存储过程的应用 19.6.1 在C#应用触发器 19.6.2 在C#应用存储过程的示例 19.7 小结第20章 VB.NET与SQL Server的开发与应用 20.1 VB.NET介绍 20.1.1 了解VB.NET 20.1.2 VB.NET的新特点 20.2 VB.NET连接数据库 20.2.1 通过数据控件绑定连接数据库 20.2.2 通过数据对象直接连接数据库 20.3 数据查询应用 20.3.1 普通数据查询的实现 20.3.2 连接查询的实现隐藏全部目录>>
Firebird是一个全功能的,强大高效的,轻量级,免维护的数据库。它很容易让您从单用户,单数据库升级到企业级的应用。 一个firebird数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连结。 关键特性:支持原子性,并发性,隔离性等概念。 MGA:支持事务的多个版本功能, 存储过程使用PSQL(Procedure SQL),你可以创建强大的存储过程来处理服务上的所有数据,你可以使用select Stored Procedure的形式,使用存储过程,以得到一个虚拟的表结构的结果。这样的话,你就可以很容易的在报表使用它。 事件:存储过程触发器可以引发事件,这个事件可以被客户端程序监听到 生成子:生成子也称为序列,它可以很容易的实现自动增加的字段。它是一个INT64的长度,因此,它可以用在一个事务,也可以用在其它很多方面。 只读数据库: 我们可以把数据库存放在CD,形成一个只读数据库。如果我们的应用程序 也在光盘上,再加上嵌入式的FB数据库服务器,便可以得到一个无与伦比的 CDLIVE(即只用光盘就可以运行起来)应用。 全事务控制: 一个客户端可以存在多个并发的事务。并且每一个事务都可以独立的进行控制,两段提交功能可以保证数据库的一致性。锁优化机制也支持多个事务的保存点。 在线备份: 不需要停止数据库即可进行备份,一个备份进程产生一个数据库当前的快照。因此,用户可以在备份期间持续的工作,即实现24x7(每天24小时,每周7天) 的操作。 触发器: 每一个表可以有多个并发的行级触发器,可以在插入前,插入后,更新前,更新后,删除前,删除后进行触发。我们可以在触发器写入PSQL语句,默认值,产生异常,firebird现在支持统一触发器,即可以一个触发器,一次性管理插入,更新,删除的操作。 扩展函数: 我们可以使用C语言,C++,DELPHI写UDF,使用UDF(用户定义函数库)可以很容易的挂入数据库引擎以扩展我们需要的功能 字符集:Firebird实现了很多国际标准的字符集,包括Unicode。 SQL标准兼容:Firebird 实现了全部SQL92所要求的功能,实现了SQL99最常用的的要求。包括但不限于"FULL/LEFT/RIGHT [OUTER] JOIN , UNION, DISTINCT , 子查询 (IN, EXISTS),内部函数 (AVG, SUM, MIN, MAX, COALESCE, CASE, ..), 主键,外键,唯一索引以及所有通用的数据类型。 Firebird还实现了域,字段级别的约束,视图,异常,规则和权限管理,更多的详细信息,请参考Firebird发布通知和参考手册。 硬件需求: Firebird可以工作最常见的硬件环境,甚至非常差的硬件,也能很好的工作,当然,硬件的要求依赖于你想做什么,例如 ,你有多少个并发用户等等。 有效的平台支持: Firebrid在常见的平台上都可运行,如Linux和Windows(包括Windows终端服务器)其它支持的平台包括(MAC OS(苹果机), Solaris及HP-UX) 把数据库从一个平台转到另一个平台,非常的容易,只要备份数据库,然后,再到另一个平台上恢复即可 可连接性: Firebird 支持一系列的连接方法,目前,可以通过原生的DELPHI,C++组件连接,也可以通过ODBC,JDBC,PHP,OLEDB,DbExpress进行连接。原生 的联连提供了直接调用Firebird的API函数库(fbclient.dll/.so)进行调用的能力。 物理限制: Firebird支持非常巨大的数据库,数据库可以分成多个物理文件。每个文件的大小依赖于操作系统的限制。当前一个数据库文件最大的理论限制是64T (即64000G),因此,常见的限制通常是操作系统的限制以及磁盘空间的限制。 服务器引擎版本: 当前有三个服务器版本。 标准服务器:每一个客户连接将引发一个服务器进程(支持多处理器) 超级服务器:一相服务器进程模块管理所有的客户端连接,当前不支持多处理器。 嵌入服务器:整个服务器引擎就是一个动态库,只支持本地通过IO进行调用。 但是,所有的服务器使用一种数据库格式,因此,你可以很方便的在不同的引擎之间共享数据库文件的数据。 协议: Firebird协议使用IPL(interbase public license)和IDPL(Initial Developer's Public License),这种协议类似于Mozilla协议。你可以完全的自由使用并且可以自由的布署在你的客户应用上。 你不需要公开你的源代码。当然,如果你修改和数据库引擎,你应该公布源代码。 工具: 有很多的工具支持Firebird.包括自由的,免费的和商业的。 包括开发工具,管理工具,诊断工具等等。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧