求助]DELPHI+SQL求救!希望大家能够尽快帮我解决!!谢谢

niqiujie 2003-09-12 12:33:19
有三个表格,具体定义分别如下:
1、CardData(卡片资料):预设为6000条记录,CardNo从1·6000,不可添加或删除。
CardNo int 为主键 (卡片编号)
CardTypeNo Int (卡片型式代码)
CardID char 可为空 (卡片内码)
HolderNo int 可为空 (持有该卡片的持有者的编号)
CardCanUse bit (当卡片内码不为空时,即为true,表示可用;否则false,表示不可用)。
2、HolderData(公司人员信息):预设为6000人,HolderData从1~6000,不可添加或删除。其实一个人可以领用多张卡片,至于“CardNo”这个字段该如何设置,我也不太清楚?
HolderNo int 为主键 (人员编号)
HolderName char
JobTitle char
CardNo 可为空 (该人员所领用的卡片)
3、HolderCardData(已经领用的卡片信息)
HolderNo int (该卡片的持有者编号)
CardNo int (卡片编号)
EffectiveDate char (生效起始日期)
ExpireDate char (生效截止日期)


问题:在HolderData中一个人领用了某张或者删除了某张卡片之后,如何在CardData和HolderCardData中实现相应的改动?
具体来说:
(1)在HolderData中,如果一个HolderNo领用了一张卡片CardNo,则:首先,在CardData中,该CardNo所对应的HolderNo做相应的改变;同时,该HolderNo和CardNo应该作为一条记录添加到HolderCardData中。如:张三领用了卡片1,则在CardData中,卡片1所对应的持有者编号应该相应的变为“张三”;同时,张三领用了卡片1这条记录也应该出现在HolderCardData中。
(2)在HolderData中,如果一个HolderNo归还了一张卡片CardNo,则:首先,在CardData中,该CardNo所对应的HolderNo变为空,表示此时没有领用者;同时,该HolderNo和CardNo作为一条记录应该在HolderCardData中删除。如:张三本来领用卡片1,此时它要归还卡片1,则在CardData中,卡片1所对应的持有者编号应为空,表示该卡片没有被领用;同时,张三领用卡片1这条记录应该从HolderCardData中删除。
哪位能解决,把代码寄给我zhangjie-0517@163.com
...全文
37 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
NewPrince 2003-09-12
  • 打赏
  • 举报
回复
不知是不是你需要的
1.Q_Carddata //连接CardData表
Sql.text:='select * from CardData';
2.Q_HolderData//连接HolderData表
Sql.text:='select * from HolderData';
3.Q_HolderCardData//连接HolderCardData表
Sql.text:='select * from HoldercardData';
4.Q_Delete
如果领用

with Q_delete do
begin
close;
Sql.text:='update CardData set HolderNo= '
+#39+Q_HolderData.FieldbyName('HolderNO').AsString+#39
+' where CardNo='+#39+Q_CardData.fieldbyname('CardNo').Asstring+#39;
ExecSql;

close;
Sql.text:='insert into holdercardData(Cardno,holderNo) values('
+#39+Q_CardData.FieldbyName('CardNo').AsString+#39
+' ,'+#39+Q_HolderData.FiledByName('HolderNo').asString+#39+')';
ExecSql;
end;
卡片归还

with Q_Delete do
begin
close;
Sql.text:='update CardData set HolderNo=null where CardNo='
+#39+Q_HolderCarddata.fieldbyname('CardNo').Asstring+#39;
ExecSql;

end;
Q_HolderCardData.delete;
NewPrince 2003-09-12
  • 打赏
  • 举报
回复
我感觉你的表建的有问题。
表HolderData 中的 CardNo用处是什么,字段CardNo是什么类型?
fhuibo 2003-09-12
  • 打赏
  • 举报
回复
gz

2,495

社区成员

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

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