社区
VFP
帖子详情
两个小问题
yuanzhang
2004-09-23 10:13:09
1.我建立了两个表,一个是表里是学生(考号,姓名,性别),另外一个表是录取情况(考号,录取院校),这两个表之间是一对一的关系,我在建立这两个表的永久关联时,显示却是一对多的关系,请问这是为什么?
2.VFP中的三个触发器怎么用,能否给个例子说明?
谢谢各位大侠,在线等待!
...全文
91
3
打赏
收藏
两个小问题
1.我建立了两个表,一个是表里是学生(考号,姓名,性别),另外一个表是录取情况(考号,录取院校),这两个表之间是一对一的关系,我在建立这两个表的永久关联时,显示却是一对多的关系,请问这是为什么? 2.VFP中的三个触发器怎么用,能否给个例子说明? 谢谢各位大侠,在线等待!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
十豆三
2004-09-23
打赏
举报
回复
在两个打开的表之间建立关系。
SET RELATION TO [eExpression1 INTO nWorkArea1 | cTableAlias1
[, eExpression2 INTO nWorkArea2 | cTableAlias2 ...]
[IN nWorkArea | cTableAlias] [ADDITIVE]]
参数
eExpression1
指定用来在父表和子表之间建立关系的关系表达式。关系表达式通常是子表主控索引的索引表达式。
子表的索引可以是单项索引 (.IDX)、多项结构复合索引 (.CDX) 或独立复合索引。如果是复合索引,应指定适当的索引标识来排序子表。SET ORDER 可用来指定排序子表的索引标识。
例如,考虑“说明”部分描述的 customer 和 orders 两表。假定子表 orders 已经建立索引,并且使用如下命令用顾客编号进行排序:
SET ORDER TO TAG cust_id
要在 customer 和 orders 两表的顾客编号上建立关系,应选择包含父表 customer 的工作区或使用 IN 子句来指定父表的工作区或别名。然后,发出 SET RELATION 命令,用如下关系表达式指定索引表达式:
SET RELATION TO cust_id INTO orders
除非关系表达式是数值型的,否则子表必须建立索引。如果发出包含非数值关系表达式的 SET RELATION 命令时,子表没有使用索引进行排序, Visual FoxPro 显示错误信息。
如果 eExpression1 是数值型表达式,那么当记录指针在父表中移动时,将计算此表达式。然后,子表的记录指针移到记录编号为 eExpression1 的记录上。
INTO nWorkArea1 | cTableAlias1
指定子表的工作区编号 (nWorkArea1) 或子表的表别名 (cTableAlias1)。
eExpression2 INTO nWorkArea2 | cTableAlias2 ...
指定其他关系表达式 (eExpression2) 和子表,建立另一个父表和子表之间的关系。在一条 SET RELATION 命令中可以创建单个父表与多个子表之间的关系,但是各个关系之间要用逗号隔开。
nWorkArea2 指定工作区编号,cTableAlias2 指定子表的别名。
IN nWorkArea
指定父表的工作区。
IN cTableAlias
指定父表的别名。
IN 子句允许创建关系时不必首先选择父表工作区。如果 SET RELATION 命令中省略了 nWorkArea 和 cTableAlias,父表必须在当前选定的工作区中打开。
ADDITIVE
保留当前工作区中所有已存在的关系并创建指定的新关系。如果命令中不包括 ADDITIVE 子句,将断开当前工作区中的所有关系,然后再创建指定的关系。
备注
在建立关系之前,必须打开一个表(父表),而且还必须在另一个工作区内打开其他表(子表)。
相关的各表通常有一个相同的字段。例如,假定表 customer 包含顾客信息,有顾客姓名、地址和唯一的顾客编号等字段。表 orders 包含订货信息,也有顾客编号字段,同时还有日期和发货信息等字段。
SET RELATION 通过相同的字段,即顾客编号字段来联系两个表。要建立这种关系,子表必须在公共字段上建立索引。建立关系后,不论何时在父表 customer 中移动记录指针到指定顾客编号的记录上时,子表 orders 中的记录指针也将同时移到相同顾客编号的记录上。如果子表中找不到相匹配的记录,子表中的记录指针将停在表尾。
不带任何参数的 SET RELATION TO 命令将移去当前选定工作区中的所有关系。可用 SET RELATION OFF 移去指定的父子关系。
十豆三
2004-09-23
打赏
举报
回复
从当前数据库的表中删除“删除”、“插入”或“更新”触发器。
DELETE TRIGGER ON TableName FOR DELETE | INSERT | UPDATE
参数
TableName
指定要删除触发器的表名。
FOR DELETE | INSERT | UPDATE
指定要删除的触发器。包含 FOR DELETE 删除“删除”触发器,包含 FOR INSERT 删除“插入”触发器,包含 FOR UPDATE 删除“更新”触发器。
备注
使用 CREATE TRIGGER 为表创建“删除”、“插入”或“更新”触发器。
示例
下面的示例创建一个“更新”触发器,该触发器禁止大于 50 的数放入 customer 表的 maxordamt 字段中。display trigger 显示“更新”触发器,DELETE TRIGGER 删除“更新”触发器,重新执行 display database 来检验“更新”触发器是否被删除。
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata') && 打开 testdata 数据库
USE CUSTOMER && 打开 customer 表
CREATE TRIGGER ON customer FOR UPDATE AS maxordamt <= 50
CLEAR
DISPLAY DATABASE
DELETE 触发器 ON customer FOR UPDATE
DISPLAY DATABASE
十豆三
2004-09-23
打赏
举报
回复
创建表的删除、插入或更新触发器。
CREATE TRIGGER ON TableName FOR DELETE | INSERT |
UPDATE AS lExpression
参数
TableName
在当前数据库中指定要创建触发器的表。
FOR DELETE | INSERT | UPDATE
指定 Visual FoxPro 创建的触发器类型。
如果所指定类型的触发器已经存在并且 SET SAFETY 是 ON,Visual FoxPro 会提示您是否要改写已存在的触发器。如果 SET SAFETY 是 OFF,则已存在的触发器被自动改写。
AS lExpression
指定触发器激发时,要计算的逻辑表达式。lExpression 可以是返回逻辑值的用户自定义函数或存储过程。可用 MODIFY PROCEDURE 创建表的存储过程。
用户自定义函数或存储过程可通过 AERROR( ) 决定激发触发器的表的名称以及触发器的类型。
如果 lExpression 计算结果为“真”(.T.),则执行激发触发器的命令或事件。
如果 lExpression 的计算结果为“假”(.F.),不执行激发触发器的命令或事件。如果 ON ERROR 过程有效,则执行 ON ERROR 过程来代替激发触发器的命令或事件。如果 ON ERROR 过程无效,则不执行激发触发器的命令或事件,同时 Visual FoxPro 产生错误信息。
备注
利用 CREATE TRIGGER 来俘获引起表中记录被删除、添加或更改的事件。只有数据库表能创建删除、插入或更新触发器。可用 CREATE DATABASE 来创建数据库,用 ADD TABLE 把表添加到数据库中。
下面的列表描述了激发删除、插入或更新触发器的事件。
DELETE 触发器
发出 DELETE 命令
在浏览窗口或编辑窗口的“表”菜单中对记录作删除记号。
注意发出 ZAP 不会造致 DELETE 触发器发生。
INSERT 触发器
发出 APPEND FROM 命令。
发出 APPEND FROM ARRAY 命令。
发出 APPEND BLANK 命令。
从浏览窗口或编辑窗口的“表”菜单追加记录。
发出 IMPORT 命令。
发出 INSERT-SQL 命令。
发出 RECALL 命令。
从浏览窗口或编辑窗口的“表”菜单中清除记录的删除标记。
UPDATE 触发器
发出 GATHER 命令。
发出 REPLACE 命令。
发出 REPLACE FROM ARRAY命令。
发出 UPDATE – SQL命令。
其它造致记录修改的事件, 如一个表单修改字段的内容。
下面的规则适用于用 CREATE TRIGGER 创建的触发器:
不能对有触发器的表使用 INSERT,但可使用 INSERT-SQL。
发出 PACK 不会激发任何触发器。
发出 ZAP 不会激发删除触发器。
如更新具有删除标记的记录,不会激发触发器。
触发器可能不会立即被激发,这取决于当前缓冲模式:
如果表缓冲起作用,当发出 TABLEUPDATE( ) 时,激发更新触发器,表中的每个缓冲记录都被更新。
示例
下面的示例创建了更新触发器。防止大于 50 的值输入到 customer 表的 maxordamt 字段中。第一个 replace 命令执行时,产生错误信息,因为 maxordamt 字段的值大于 50。第二个 replace 命令没有产生错误,因为 maxordamt 的值小于或等于 50。
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && 打开 customer 表
* 设置 maxordamt 字段的触发器为值 <= 50 时失败
CREATE TRIGGER ON customer FOR UPDATE AS maxordamt <= 50
ON ERROR && 恢复系统错误处理程序
WAIT WINDOW "按一键用值 60 来测试触发器"+CHR(13);
+"当你得到错误信息时, 按忽略。"
REPLACE maxordamt WITH 60 && 显示一个错误信息
? maxordamt
WAIT WINDOW "按一键用值 50 测试。"
REPLACE maxordamt WITH 50 && 值是可接受的
? maxordamt
DELETE TRIGGER ON customer FOR UPDATE && 移去触发器
commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar程序文件
commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar 案例上传: http://hi.baidu.com/lichao77821/blog
DirectX修复工具 V3.3标准 绿色版
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b
问题
设计,可以完美修复该
问题
。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击主界面上的“检测并修复”按钮,程序就会自动完成校验、检测、下载、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。 本程序适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 8.1 Update、Windows 10,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 本程序的V3.3版分为标准版、增强版以及在线修复版。其中的标准版以及增强版都包含完整的DirectX组件。除此之外,增强版中还额外包含了c++ Redistributable Package,因此增强版不但能解决DirectX组件的
问题
,而且还能解决c++组件异常产生的
问题
。增强版适合无法自行解决c++相关
问题
的用户使用。在线修复版的功能与标准版相同,只是其所需的文件将通过Internet下载,因此大大减小了程序的体积。本程序的各个版本之间,主程序完全相同,只是配套使用的数据包不同。因此,当您使用标准版数据包时,程序将进行标准修复;当您使用增强版的数据包时,程序将进行增强修复;当数据包不全或没有数据包(即只有DirectX Repair.exe程序)时,程序将进行在线修复。在线修复、离线修复可自由灵活组合,充分满足不同用户的需要。 本程序自V2.0版起采用全新的底层程序架构,使用了异步多线程编程技术,使得检测、下载、修复单独进行,互不干扰,快速如飞。新程序更改了自我校验方式,因此使用新版本的程序时不会再出现自我校验失败的错误;但并非取消自我校验,因此程序安全性与之前版本相同,并未降低。 程序有自动更新c++功能。由于绝大多数软件运行时需要c++的支持,并且c++的异常也会导致0xc000007b错误,因此程序在检测修复的同时,也会根据需要更新系统中的c++组件。自V3.2版本开始使用了全新的c++扩展包,可以大幅提高工业软件修复成功的概率。修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)会提示用户使用增强版进行修复。 程序有两种窗口样式。正常模式即默认样式,适合绝大多数用户使用。另有一种简约模式,此时窗口将只显示最基本的内容,修复会自动进行,修复完成10秒钟后会自动退出。该窗口样式可以使修复工作变得更加简单快速,同时方便其他软件、游戏将本程序内嵌,即可进行无需人工参与的快速修复。开启简约模式的方法是:打开程序所在目录下的“Settings.ini”文件(如果没有可以自己创建),将其中的“FormStyle”一项的值改为“Simple”并保存即可。 程序有高级筛选功能,开启该功能后用户可以自主选择要修复的文件,避免了其他不必要的修复工作。同时,也支持通过文件进行辅助筛选,只要在程序目录下建立“Filter.dat”文件,其中的每一行写一个需要修复文件的序号即可。该功能仅针对高级用户使用,并且必须在正常窗口模式下才有效(简约模式时无效)。 本程序有自动记录日志功能,可以记录每一次检测修复结果,方便在出现
问题
时,及时分析和查找原因,以便找到解决办法。 程序的“选项”对话框中包含了4项高级功能。点击其中的“注册系统文件夹中所有dll文件”按钮可以自动注册系统文件夹下的所有dll文件。该项功能不仅能修复DirectX的
问题
,还可以修复系统中很多其他由于dll未注册而产生的
问题
,颇为实用。点击该按钮旁边的小箭头,还可以注册任意指定文件夹下的dll文件,方便用户对绿色版、硬盘版的程序组件进行注册。点击第二个按钮可以为dll文件的右键菜单添加“注册”和“卸载”项,方便对单独的dll文件进行注册。请注意,并不是所有的dll文件都可以通过这种方式注册。点击“DirectX版本”选项卡可以自行修改系统中DirectX的版本信息。点击“DirectX加速”选项卡可以控制系统中DirectX加速的开启与关闭。 新版程序集成了用户反馈程序,可以在用户允许的前提下发送检测修复结果。用户也可以在出现
问题
时通过反馈程序和软件作者进行交流,共同查找
问题
。反馈是完全自愿和匿名(如果不填写E-mail地址)的。 本程序的通用版基于Microsoft .NET Framework 2.0开发,对于Windows 2000、Windows XP、Windows 2003的用户需要首先安装.NET Framework 2.0或更高版本方可运行本程序。有关下载和安装的详细信息请参阅“致Windows XP用户.txt”文件。对于Windows Vista、Windows 7及后续用户,可以直接运行本程序。 同时鉴于Windows 8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中默认未包含.NET Framework 2.0,因此新版的程序文件夹内将包含一个DirectX_Repair_win8的特别版程序,该程序功能与通用版相同,基于.NET Framework 4.0开发,可以在Windows8(Windows 8.1、Windows 8.1 Update)、Windows 10系统中直接运行(其他系统如果安装了.NET Framework 4.0也可以运行这个特别版的程序)。 本程序的官方博客地址为:http://blog.csdn.net/vbcom/article/details/6962388 所有的更新以及技术支持都可以到该博客上找到。
orcad 小
问题
两个
(annotate 标号重复和显示GND的方法)
刚刚从concept转到orcad中,画原理图碰到了
两个
小
问题
,记录一下。 1.annotate 标号重复,发现很多的器件标号重复了。检查annotate设置发现:标红的部分,这个钩子勾上了。去掉这个就好了。 2.orcad的电源地,可以调用自带的库中的电源 但是并不显示是哪一个地,这在多个地的设计中不是很方便,其实,这个是可以显示的,方法如下:
判断
两个
矩形是否重叠
判断
两个
矩形是否重叠关于如何判断
两个
矩形重叠,这是我在实际项目开发当中曾经遇到过的
问题
:“判断图像中检测到的
两个
人脸框矩形是否有重叠部分,并计算重叠大小,从而确认是否为同一个人脸”。后来,在浏览博客时,也发现也有人将这个
问题
当做面试题目,并进行过讨论,但是,列出的代码过于繁杂,不敢恭维。所以,写下这篇博文,并贴出代码,供大家参考。
利用Java从键盘输入
两个
整数,计算这
两个
数的最小公倍数和最大公因数并输出
从键盘输入
两个
整数,计算这
两个
数的最小公倍数和最大公因数并输出 import java.util.Scanner; public class Gysgbs { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数"); //获取从键盘键入的
两个
整数 int nu
VFP
2,745
社区成员
29,138
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章