兄弟现在做三层的动态强制约束编程,有一个问题始终解决不了,就是服务器端编辑
DataSetProvider的属性,将业务约束写入的时候,就是不能,服务器端报错。代码如下:
//获取相关数据
ADOFulwel.SQL.Clear;
ADOFulwel.Close;
ADOFulwel.SQL.Add(str_sql) ;
vdata:=AS_GetRecords('dspFull',-1,Count,byte(Option),'',Params,vdata1);
//取业务约束数据
ADOQuery1.active;
//加入业务约束
Field:=dspFull.dataset.Fields[0];while not ADOQuery1.Eof do
begin
I:=0 ;
Field:=ADOFulwel.Fields[0];
Field.ConstraintErrorMessage := ADOQuery1.fieldbyname('ConstraintErrorMessage').AsString;
Field.CustomConstraint := ADOQuery1.fieldbyname('CustomConstraint').AsString;
Field.DisplayLabel := ADOQuery1.fieldbyname('DisplayLabel').AsString ;
Field.EditMask := ADOQuery1.fieldbyname('EditMask').AsString ;
Field.Visible := ADOQuery1.fieldbyname('Visible').AsBoolean ;
Field.Required := ADOQuery1.fieldbyname('Required').AsBoolean ;
Field.ReadOnly := ADOQuery1.fieldbyname('ReadOnly').AsBoolean ;
end;
在给field的属性赋值时,系统报错。
哪位给看看??
DataSetProvider的属性,将业务约束写入的时候,就是不能,服务器端报错。代码如下:
//获取相关数据
ADOFulwel.SQL.Clear;
ADOFulwel.Close;
ADOFulwel.SQL.Add(str_sql) ;
vdata:=AS_GetRecords('dspFull',-1,Count,byte(Option),'',Params,vdata1);
//取业务约束数据
ADOQuery1.active;
//加入业务约束
Field:=dspFull.dataset.Fields[0];while not ADOQuery1.Eof do
begin
I:=0 ;
Field:=ADOFulwel.Fields[0];
Field.ConstraintErrorMessage := ADOQuery1.fieldbyname('ConstraintErrorMessage').AsString;
Field.CustomConstraint := ADOQuery1.fieldbyname('CustomConstraint').AsString;
Field.DisplayLabel := ADOQuery1.fieldbyname('DisplayLabel').AsString ;
Field.EditMask := ADOQuery1.fieldbyname('EditMask').AsString ;
Field.Visible := ADOQuery1.fieldbyname('Visible').AsBoolean ;
Field.Required := ADOQuery1.fieldbyname('Required').AsBoolean ;
Field.ReadOnly := ADOQuery1.fieldbyname('ReadOnly').AsBoolean ;
end;
在给field的属性赋值时,系统报错。
哪位给看看??
解决方案 »
- XE3 怎么才回到古典的Delphi7
- 如何把与datetimepicker中日期里相同月份的数据检索出来
- Adoquery控件的CanModify属性怎么样来修改啊?
- 怎样控制Word的菜单,我使用的Activex+WebBrowser开发的,主菜单我自定义那下拉的二级菜单,我能否从VBA中批量自动得到呢?
- ADO批量处理时,CancelBatch为何不能同时取消多条记录?
- stack overflow 的错误
- 求透明panel控件:panel放在Image控件上,panel上要显示出Image控件的图片
- 一个界面上同时存在两个焦点怎么实现?能实现吗?还有样在结果集里边进行查找?
- 为什么我插入数据时老是显示“fields xxx can not modified”?我的xxx字段类型为numeric
- 在别的论坛都无人接招。请各位大虾指点。
- 问个很菜的问题:关于query的!
- ★在DELPHI中如何实现内存地址的读写★
不一定对!
begin
showmessage('ok,begin upd fields pro.');
I:=0 ;
FieldName:=ADOQuery1.fieldbyname('fieldname').AsString ;
with ADOFulwel do
begin
fieldbyname(FieldName).EditMask:=ADOQuery1.fieldbyname('EditMask').AsString ;
fieldbyname(FieldName).ConstraintErrorMessage := ADOQuery1.fieldbyname('ConstraintErrorMessage').AsString;
fieldbyname(FieldName).CustomConstraint := ADOQuery1.fieldbyname('CustomConstraint').AsString;
fieldbyname(FieldName).DisplayLabel := ADOQuery1.fieldbyname('DisplayLabel').AsString ;
fieldbyname(FieldName).Visible := ADOQuery1.fieldbyname('Visible').AsBoolean ;
fieldbyname(FieldName).Required := ADOQuery1.fieldbyname('Required').AsBoolean ;
fieldbyname(FieldName).ReadOnly := ADOQuery1.fieldbyname('ReadOnly').AsBoolean ;
if fieldbyname(FieldName) is TNumericField then
begin
with fieldbyname(FieldName) as TNumericField do
DisplayFormat := ADOQuery1.fieldbyname('DisplayFormat').AsString ;
if fieldbyname(FieldName) is TFloatField then
with fieldbyname(FieldName) as TFloatField do
begin
MinValue := StrToInt( ADOQuery1.fieldbyname('MinValue').AsString );
MaxValue := StrToInt( ADOQuery1.fieldbyname('MaxValue').AsString );
end
else if fieldbyname(FieldName) is TBCDField then
with fieldbyname(FieldName) as TBCDField do
begin
MinValue := StrToInt( ADOQuery1.fieldbyname('MinValue').AsString );
MaxValue := StrToInt( ADOQuery1.fieldbyname('MaxValue').AsString );
end
else if fieldbyname(FieldName) is TIntegerField then
with fieldbyname(FieldName) as TIntegerField do
begin
MinValue := StrToInt( ADOQuery1.fieldbyname('MinValue').AsString );
MaxValue := StrToInt( ADOQuery1.fieldbyname('MaxValue').AsString );
end
else if fieldbyname(FieldName) is TLargeIntField then
with fieldbyname(FieldName) as TLargeIntField do
begin
MinValue := StrToInt( ADOQuery1.fieldbyname('MinValue').AsString );
MaxValue := StrToInt( ADOQuery1.fieldbyname('MaxValue').AsString );
end;
end
else if fieldbyname(FieldName) is TDateTimeField then
with fieldbyname(FieldName) as TDateTimeField do
DisplayFormat := ADOQuery1.fieldbyname('DisplayFormat').AsString ;
end;
end;