Interbase??MIDAS权限? (100分)

  • 主题发起人 主题发起人 河清
  • 开始时间 开始时间

河清

Unregistered / Unconfirmed
GUEST, unregistred user!
Interbase中,要求对a,b,c字段建立唯一索引,a,b,c均为Varchar类型,
且b,c有可能为null,但是在Interbase中,唯一索引要求字段不能为null,
请教解决办法。
 
可以到www.3asoft.com去问一下,
专门的interbase网站.
 
我所知道的数据库主键的各个部分都不能为null(比如oracle之类),好象是标准来的,
你可以让他not null,但是设置一个default值,比如数值的话让他为0,字符串类型的话可以
让他为' ',这样你不赋值都可以有一个缺省的值
 
我在DataServer处理该问题的思路基本同Pipi,设置b,c字段的Default值为‘NULL’,
在ApplicationServer中,我在TDataSetProvider的OnGetData中进行数据解析,代码如下:
procedure TACPDM.DataSetProvider(Sender: TObject;
DataSet: TCustomClientDataSet);
begin
with DataSetdo
begin
while not eofdo
begin
if FieldByName('b').AsString=NULLSTR then
begin
Edit;
FieldByName('b').AsString:='';
end;
if FieldByName('c').AsString=NULLSTR then
begin
if State<>dsEdit then
Edit;
FieldByName('c').AsString:='';
end;
if State=dsEdit then
Post;
Next;
end;
end;
end;
该代码在用户有修改权限时工作正常,但如果用户只有只读权限时,上面代码的将
不能进入Edit模式而出错。
设置只读权限代码如下:
with DataSetProviderdo
begin
if not (poReadOnly in Options) then
Options:=Options+[poReadOnly];
end;
由于TCustomClientDataSet的ReadOnly参数为protected,故不能在解析前对其更改
为True,解析后改回False.
请教!!
 
主键的default值也不能为null,我说的0、' ' 等都不是null
 
To:Pipi
在我的代码中是设定
const
NULLSTR:String[4]='NULL';
即使用串'NULL',不是空串NULL。
我需要的是在客户端显示为空串,而不是设定的0,' ','NULL'等内容的方法,而且在不同
的用户权限下通用。
 
主关键字怎么能为空!
 
唯一索引怎么能为空?
 
我已经解决了
 
后退
顶部