如何判断BLOB字段值为空??(100分)

  • 主题发起人 主题发起人 kai
  • 开始时间 开始时间
K

kai

Unregistered / Unconfirmed
GUEST, unregistred user!
以VFP创建的一DBF文件,有一通用型字段,准备插入照片,
在编程过程中需要查找没有插入照片的记录,我用ISNULL来判断,
找不出来。
 
变通方法:
增加一标记字段,增加照片后标记一下,不就搞定了。
 
不行吗?
select * from animals where bmp is null
能选出来啊。不是 IsNull,而是 Is Null,中间需要有空格的。
TBlobField 有这个 isnull 的属性的。
 
to crab:
不行。
 
还是用我的办法吧.
 
我是用BlobSize来判断,好象也可以啊
 
试试下面这段代码,我就是用的这个办法。
TBlobStream *blobstr1;
blobstr1=new TBlobStream((TBlobField *)Main->Query1->FieldByName(FieldName),bmRead);
int len=blobstr1->Size;
if(len<=0)
{
ShowMessage("资料不存在!");
delete blobstr1;
return NULL;
}
 
我一碰到blob就觉得很讨厌,
而且我到现在也还没有找到好的
处理方法,衰...
 
查一下DELPHI的帮助文件,找出TBLOBFIELD为关键字的帮助页,仔细看属性即!
 
这个方法一定可以
可以先把Blob字段的内容读到一个TMemoryStream中去,
然后判断TMemoryStream.Size它的大小。
 
用 TBlobField.value = null 试试
 
to lml:你的方法只有在取一条记录时才有用,如果你要选所有Blob字段为空的记录,你
怎么办?
to crab:你说的那条词句没有报错,但是返回不了记录;
to honghs:用BlobSize的话如何在SQL语句中写?
 
is null 不行,why?
 
我总是搞不定 blob, blob问题多多!!!!
 
BlobSize=0为空.好象不能在sql中加入blobsize的条件.
 
kai:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
存储的时候,如果有照片,就用正常的方法保存;如果没有照片,用如下的方法:

parambyname('photo').datatype:=ftblob;
parambyname('photo').clear;

查找的时候用is null就可以判断了,我的程序用过的

因为blob字段很特别,只要你修改过,哪怕是指定它的value为null,用 is null都不能判断
出来的。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
913
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部