Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:[求助] 不懂就问:表达式列不能作关联列?

1楼
xipies 发表于:2008/9/1 17:43:00
我的业务系统里的业务编号是需要自动累加生成的,如00001,00002等,必须用到表达式列,但表达式列又不能作为关联列和其他表相关联,(例如和业务明细表的业务编号列关联),怎样解决?
2楼
nidecan 发表于:2008/9/1 17:45:00
我也遇到类似问题
3楼
狐狸爸爸 发表于:2008/9/1 17:47:00

自动编号与关联

前面已经提到,由于自动编号列_Identify的存在,我们可以删除原来的产品编号、客户编号、订单编号等列,新增一个同名的表达式列,表达式设为:

[_Identify]

现在有一个问题,在我们的示例文件中,产品表通过产品编号和订单表建立关联、客户表通过客户编号列和订单表建立关联,但是现在的产品编号、客户编号是表达式列,而表达式列是不能作为关联列使用的,那怎么办呢?

很简单,直接用_Identify列代替产品编号、客户编号列,作为产品表和客户表的关联列使用。

4楼
狐狸爸爸 发表于:2008/9/1 17:49:00

不重复编号的生成

也许你已经留意到,在表达式生成器中,有一个在表中并未出现的列名:_Identify

_Identify是实实在在存在的列,只是你看不到而已;新增记录的时候,该列的值会自动增量,步长为1,但是该值是临时的,保存的时候,才会生成真正的值。

即使多人同时增加和保存数据的时候,该列的值也是不重复的,这个列类似于Access/Sql Server的自动增量主键,不同的是,多人同时保存的时候,在FoxTable中,每个人的得到的编号是连续的,而Access/Sql Server是分散的。

有了_Identify,你可以删除原来的产品编号、客户编号、订单编号等列,新增一个同名的表达式列,表达式设为:

[_Identify]

这样不仅编号可以生成,而且不管有多少人同时向表中增加行,生成的编号都是连续的,而且是不重复的。

副作用是,你永远无法修改编号列的内容,不过从数据安全角度来看,也许这样更好!

提示:只有内部数据表才有_Identify列。

5楼
xipies 发表于:2008/9/1 17:49:00
呵呵,这个没有仔细看,但是感觉要花点时间琢磨琢磨才行,谢谢
6楼
狐狸爸爸 发表于:2008/9/1 17:50:00
自动编号不再是难题,系统已经自动处理了。
7楼
狐狸爸爸 发表于:2008/9/1 17:51:00
建议循序渐进看帮助,不要跳着来。
8楼
xipies 发表于:2008/9/1 18:00:00
以下是引用狐狸爸爸在2008-9-1 17:51:00的发言:
建议循序渐进看帮助,不要跳着来。


谢谢谢谢,主要是有点激动有点急,想马上把自己需要的各种功能过一遍

9楼
xipies 发表于:2008/9/1 18:44:00
这个还是有点问题,用[_Identify]列作为业务编号来关联,他只能生成1,2,3等格式的序列数,但我一般常用的业务编号格式为两种,第一种:10位数的顺序序列,如0000000001,0000000002,0000000893等,第二种是以日期为单位每日从1开始递增,如2008年8月30日有3笔业务,则编号为20080830-0001,20080830-0002,20080830-0003,而到31号时又从1开始,如20080831-0001,20080831-0002等,这样又如何实现?
10楼
狐狸爸爸 发表于:2008/9/1 19:03:00
这个你要继续看帮助,用计算代码。
共12 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02734 s, 2 queries.