从表的datasource属性设为与主表关连的Tdatasource控件
解决方案 »
- delphi7中如何加入delphi6的ClientSocket控件
- 请问怎么屏蔽系统功能键,比如Alt+Tab, Ctrl+Esc.
- Borland 发布 Delphi 7.1 升级补丁
- 高分求源码。怎么在Delphi中建立套帐。
- 请教一个文件的打开方式
- query问题求求,高分!!!谢谢
- 一个很怪的问题,打开IE的超链接打不开!!!!!!!!
- 请问哪里有关于Delphi从入门到精通的电子图书下载啊!!!!!
- 不使用ClientDataset.applyupdate更新数据,而把Clentdataset.delta作为一个参数传到控制对象的方法updata(data:varient)中为什么只能更新一次
- 在98,N下怎样读取端口(并行口)寄存器数据。
- 怎样才可以在运行时编辑fastreport的报表?
- 使用dephi,后台用ado连接SQLserver怎么连不通?
我前台用Delphi的Query,后台是Oracle数据库但在处理Date类型字段时,会出现。错误
控制主从表的关系。但不要控制的太死。
参考:DelphiClassInfo(主表)(Delphi类帮助信息)和DelphiItemInfo
(从表)(Delphi每一个类的属性/方法/事件)//****************************************************
// DelphiClassInfo的Triger
//****************************************************
create trigger tD_DelphiClassInfo on DelphiClassInfo for DELETE as
/* ERwin Builtin Sat Nov 24 16:18:45 2001 */
/* DELETE trigger on DelphiClassInfo */
begin
declare @errno int,
@errmsg varchar(255)
/* ERwin Builtin Sat Nov 24 16:18:45 2001 */
/* DelphiClassInfo R/2 DelphiItemInfo ON PARENT DELETE RESTRICT */
if exists (
select * from deleted,DelphiItemInfo
where
/* %JoinFKPK(DelphiItemInfo,deleted," = "," and") */
DelphiItemInfo.ClassName = deleted.ClassName
)
begin
select @errno = 30001,
@errmsg = 'Cannot DELETE DelphiClassInfo because DelphiItemInfo exists.'
goto error
end
/* ERwin Builtin Sat Nov 24 16:18:45 2001 */
return
error:
raiserror @errno @errmsg
rollback transaction
end//*****************************************************
create trigger tU_DelphiClassInfo on DelphiClassInfo for UPDATE as
/* ERwin Builtin Sat Nov 24 16:18:45 2001 */
/* UPDATE trigger on DelphiClassInfo */
begin
declare @numrows int,
@nullcnt int,
@validcnt int,
@insClassName varchar(80),
@errno int,
@errmsg varchar(255) select @numrows = @@rowcount
/* ERwin Builtin Sat Nov 24 16:18:45 2001 */
/* DelphiClassInfo R/2 DelphiItemInfo ON PARENT UPDATE RESTRICT */
if
/* %ParentPK(" or",update) */
update(ClassName)
begin
if exists (
select * from deleted,DelphiItemInfo
where
/* %JoinFKPK(DelphiItemInfo,deleted," = "," and") */
DelphiItemInfo.ClassName = deleted.ClassName
)
begin
select @errno = 30005,
@errmsg = 'Cannot UPDATE DelphiClassInfo because DelphiItemInfo exists.'
goto error
end
end
/* ERwin Builtin Sat Nov 24 16:18:45 2001 */
return
error:
raiserror @errno @errmsg
rollback transaction
end//****************************************************
// DelphiItemInfo的Triger
//****************************************************
create trigger tI_DelphiItemInfo on DelphiItemInfo for INSERT as
/* ERwin Builtin Sat Nov 24 16:21:11 2001 */
/* INSERT trigger on DelphiItemInfo */
begin
declare @numrows int,
@nullcnt int,
@validcnt int,
@errno int,
@errmsg varchar(255) select @numrows = @@rowcount
/* ERwin Builtin Sat Nov 24 16:21:11 2001 */
/* DelphiClassInfo R/2 DelphiItemInfo ON CHILD INSERT RESTRICT */
if
/* %ChildFK(" or",update) */
update(ClassName)
begin
select @nullcnt = 0
select @validcnt = count(*)
from inserted,DelphiClassInfo
where
/* %JoinFKPK(inserted,DelphiClassInfo) */
inserted.ClassName = DelphiClassInfo.ClassName
/* %NotnullFK(inserted," is null","select @nullcnt = count(*) from inserted where"," and") */
if @validcnt + @nullcnt != @numrows
begin
select @errno = 30002,
@errmsg = 'Cannot INSERT DelphiItemInfo because DelphiClassInfo does not exist.'
goto error
end
end
/* ERwin Builtin Sat Nov 24 16:21:11 2001 */
return
error:
raiserror @errno @errmsg
rollback transaction
endcreate trigger tU_DelphiItemInfo on DelphiItemInfo for UPDATE as
/* ERwin Builtin Sat Nov 24 16:21:11 2001 */
/* UPDATE trigger on DelphiItemInfo */
begin
declare @numrows int,
@nullcnt int,
@validcnt int,
@insClassName varchar(80),
@insItemKind int,
@insProperty varchar(100),
@errno int,
@errmsg varchar(255) select @numrows = @@rowcount
/* ERwin Builtin Sat Nov 24 16:21:11 2001 */
/* DelphiClassInfo R/2 DelphiItemInfo ON CHILD UPDATE RESTRICT */
if
/* %ChildFK(" or",update) */
update(ClassName)
begin
select @nullcnt = 0
select @validcnt = count(*)
from inserted,DelphiClassInfo
where
/* %JoinFKPK(inserted,DelphiClassInfo) */
inserted.ClassName = DelphiClassInfo.ClassName
/* %NotnullFK(inserted," is null","select @nullcnt = count(*) from inserted where"," and") */
if @validcnt + @nullcnt != @numrows
begin
select @errno = 30007,
@errmsg = 'Cannot UPDATE DelphiItemInfo because DelphiClassInfo does not exist.'
goto error
end
end
/* ERwin Builtin Sat Nov 24 16:21:11 2001 */
return
error:
raiserror @errno @errmsg
rollback transaction
end
我用的是Oracle数据库。数据表字段时Date类型。
在用Query处理日期时,我调用
SldMxbCkCzyRq.Clear;
(收料单明细表仓库操作员日期)
设置为空。但在下次查询时,
Oracle报
ORA-01801: 日期格式对于内部缓冲区过长 错误
Delphi报 Invalid Time 错误。而我原先用Table实现是没有此错误。
请问Query有何方法实现置Null处理?急!