Interbase 入门问题 n 问!

耙子 2003-01-15 02:07:18
加精
昨夜看了interbase 的Ref文档,200多页英文的,累死我了,看到了今天早上6点多,结果Delphi的 Interbase 控件地帮助,感觉Delphi/bcb 和 IB简直是珠联璧合,比PB和Sybase结合的还好,事物功能方便多了。

但是由于是菜鸟,问几个入门问题。

1.IB的文档没有提及类似mssql的Identity或者Increment 这类的自增量字段,似乎需要用gen_id() 结合 触发器来做,不知我理解得对不对。 IB6.5也没有吗?为什么不提供呢?有没有什么简便的写法。

2.他简化了数据类型,没提供Money 或者 Currency这类的,需要用Numeric这类的定点数来替代。对吗?

3.Numeric 和 Demcimal 有什么区别吗?

4.IB的文档上说他的Char类型是按照实际的长度来存储数据的,不是类似mssql的定长分配存储空间,在读取的时候在自动在后面补齐空格,这样可以不是和varchar一样了吗?如何在读出 char列的时候能自动去掉尾部空格,类似varchar?
如果我采用varchar是不是效率和char 一样了?

5.连接IB采用了Interbase控件面板的控件,没有用BDE,分发IB数据库的程序时候需要带那些文件?

6.我没想到的,你觉得该告诉我这个菜鸟的。


谢谢。
...全文
49 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
耙子 2003-01-15
  • 打赏
  • 举报
回复
嗬嗬!看英文的文档累死了没看明白,你一说我明白了!

给分了!
TR@SOE 2003-01-15
  • 打赏
  • 举报
回复
这两种类型有什么区别呢?它们的区别在于:
NUMERIC (x, y)定义的定点数不多不少正好有x位有效数字,而其中y位数字位于小数点的右边。例如,
NUMERIC(5,2)
它表示无论在怎样的情况下,一个如此定义的字段总是有5位有效数字,而小数点右边有两位。
而DECIMAL (x, y)定义的定点数至少要有x位有效数字,而其中y位数字位于小数点的右边。例如,
DECIMAL (5,2)
它表示无论在怎样的情况下,一个如此定义的字段至少要有5位有效数字(有可能更多),而小数点右边有两位。
可见,无论在哪个定义下,小数点右边的数字位数都是固定的,因此它们被统称为定点数。
wildhorse01 2003-01-15
  • 打赏
  • 举报
回复
boolean在速达的数据库里是用domain实现的!
建议到www.chinabcb.com/download下载个数据库例子看看,里有许多触发器,存储过程的实用例子:)
耙子 2003-01-15
  • 打赏
  • 举报
回复
谢谢!非常感谢。
TR@SOE 2003-01-15
  • 打赏
  • 举报
回复
“还在有TR,不然肯定不愿意用IB,因为每人可吻呀!”

???别,,,别,,,我的取向一直很正常的。

再来回答问题:
1.比如点击 IBTable 增加全部的字段,会发现字段的属性里面有一个AutoGenerateValue 可以选择AutoInc,这个能实现自增量字段吗?
>不可以。

3.为啥晚上告诉我?知道我家?我给你留门……
>现在手上没有资料,晚上才会有。

5.分发客户端和服务端的都说一下好吗?
>要说的太多了。而且一般我建议只考虑客户端的分发。因为无论如何,服务器端你总得好歹装一个吧?

6.对,忘了boolean,mssql也没有boolean,但提供了bit类型,你的意思用int 类型完成对吗
可以用int, char (1),都可以完成boolean的实际操作。不过深入研究的意义已经不大了,因为IB 7就完全支持boolean了。
wildhorse01 2003-01-15
  • 打赏
  • 举报
回复
有个速达的例子数据库,还有很好的客户端管理工具(registerd edition)
wildhorse01 2003-01-15
  • 打赏
  • 举报
回复
原来是pazee (耙子) 问的:)
那我就放点好东西:)
www.chinabcb.com/download/interbase
耙子 2003-01-15
  • 打赏
  • 举报
回复
我这是偷学 TR的技艺呢。
还在有TR,不然肯定不愿意用IB,因为每人可吻呀!

TR别跑!
yyfzy 2003-01-15
  • 打赏
  • 举报
回复
pazee和TR@SOE一唱一合,服了!

老大提问,不服不行!

呵呵
耙子 2003-01-15
  • 打赏
  • 举报
回复
哦呀! TR来了 :)

1.比如点击 IBTable 增加全部的字段,会发现字段的属性里面有一个AutoGenerateValue 可以选择AutoInc,这个能实现自增量字段吗?

3.为啥晚上告诉我?知道我家?我给你留门……

5.分发客户端和服务端的都说一下好吗?

6.对,忘了boolean,mssql也没有boolean,但提供了bit类型,你的意思用int 类型完成对吗?

再次感谢 TR,如果不是你推荐我可能永远不用IB.
TR@SOE 2003-01-15
  • 打赏
  • 举报
回复
我钢开万会啊。。。大哥。。。。
耙子 2003-01-15
  • 打赏
  • 举报
回复
tr 咋还不来看看我呢?
TR@SOE 2003-01-15
  • 打赏
  • 举报
回复
1.IB的文档没有提及类似mssql的Identity或者Increment 这类的自增量字段,似乎需要用gen_id() 结合 触发器来做,不知我理解得对不对。 IB6.5也没有吗?为什么不提供呢?有没有什么简便的写法。
>>是,必须用gen_id()+触发器,但是这样做有问题,因为在DBGRID状态,对于这种gen_id产生的字段,根据我的实际经验,不会自动触发(或者说触发的时机不对)。我的建议是:采用纯SQL INSERT操作;或者用关联的IBTable的事件AfterInsert/BeforePost联用。具体有代码可以提供。

我对IB不提供自增长字段的看法如下:
一、任何情况下我们都可以不依赖自增长字段而唯一的确定一个记录,虽然这样做会比较简单。
二、其它数据库系统的自增长字段的实现机制和IB的也是一样的。只不过一个封装了,一个没有封装而已。

2.他简化了数据类型,没提供Money 或者 Currency这类的,需要用Numeric这类的定点数来替代。对吗?
>>对。

3.Numeric 和 Demcimal 有什么区别吗?
>>晚上告诉你。

4.IB的文档上说他的Char类型是按照实际的长度来存储数据的,不是类似mssql的定长分配存储空间,在读取的时候在自动在后面补齐空格,这样可以不是和varchar一样了吗?如何在读出 char列的时候能自动去掉尾部空格,类似varchar?
如果我采用varchar是不是效率和char 一样了?
>>IB 6.5对char/varchar的处理效率已经提高了很多。一般情况下推荐使用varchar。char我一般用在恰好,永远,不多不少有那么多位的情况。例如:订单号,工号等等。

5.连接IB采用了Interbase控件面板的控件,没有用BDE,分发IB数据库的程序时候需要带那些文件?
>>看你是分发数据库服务器还是客户端。

6.我没想到的,你觉得该告诉我这个菜鸟的。
>>6.5中不支持BOOLEAN,7就支持了。6.5中BOOLEAN的处理需要额外的技巧。
warton 2003-01-15
  • 打赏
  • 举报
回复
pazee (耙子) 兄是菜鸟!!我是菜菜鸟!!哈哈!!

我对interbase少解不多,到tr老大的网站看看吧!!

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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