当前位置:主页>仓库管理软件> 列表

判断字段是否允许为空!!!急。。。在线等!!! 找进销存网络版破解

财务软件版1楼: 表A中字段B设置为不允许为空,在DELPHI中如何判断字段B是非空字段,

2楼: function EmptyStr(const sAString: String): boolean;
var
c: integer;
begin
c := Length(sAString);
while (sAString[b] in ['' '', #9, #12, #13]) and (c > 0) do Dec(c);
if c > 0 then
Result := FALSE
else
Result := TRUE;
end;
这是判断是否有空字串(长度为零), 或者是全为空白字元组成的字串的函数。你可以参考一下。 如win7局域网管理软件

3楼: if ADOQuery1.FieldByName(''B'').IsNull then //这就说明is null 了

4楼: 各位理解错了我的意思了,我不是要知道这个字段当前值是否为空,而是要得到这个字段在数据库当中是允不允许为空

5楼: try
ADOQuery1.FieldByName(''b'').Value:=null;
ADOQuery1.post;
//--允许为空
except
//--不能为空
end;

6楼: if varisnull(adoquery1[''B'']) then //判断字段B是否为空

财务软件版7楼: if ado.FiledByName(''字段名'').isNull then
为空做什么
ELSE
非空做什么。。

8楼: 不知道是不是我没说明白,我要知道这个字段在表结构里定义的是非空字段

9楼: .........这个要用到SQL的语句
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(sp_columns @table_name=''A'');
adoquery1.open;
if adoquery1[''b'']=0 then
showmessage(''字段B不能为空'');

10楼: 楼主看到了没有??对不起,你后面写的我刚才没有看到,现在赶紧补充回

11楼: 那就抓服务器上syscolumns表中的信息来看

12楼: 在系统表中找到这个字段就可以得到信息了!
SELECT TOP 1 isnullable FROM syscolumns WHERE (name = ''you fieldname'')
如果结果为1表示可以为空,0则不能为空 如进销存网络版破解

13楼: 抓服务器上syscolumns表中的信息是可行的,不知道能不能要据tfield的什么属性之类的判断

财务软件版14楼: SELECT
''表名''=case when a.colorder=1 then d.name else '''' end,
表说明=case when a.colorder=1 then isnull(f.value,'''') else '''' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,''IsIdentity'')=1 then ''√''else '''' end,
主键=case when exists(SELECT 1 FROM sysobjects where xtype=''PK'' and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) then ''√'' else '''' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,''PRECISION''),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,''Scale''),0),
允许空=case when a.isnullable=1 then ''√''else '''' end,
默认值=isnull(e.text,''''),
字段说明=isnull(g.[value],'''')
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype=''U''
left join syscomments e on a.cdefault=e.id
left join sysproperties g on a.id=g.id and a.colid=g.smallid
left join sysproperties f on d.id=f.id and f.smallid=0
where d.name=''你的表名'' --如果只查询指定表,加上此条件
order by a.id,a.colorder

15楼: 前两天刚刚学到的!

16楼: LWH006这位兄弟的是对的
我刚才试了

17楼: 该给分了吧?呵呵呵呵呵呵

18楼: to SmallGhost
呵呵,不错,收藏了

19楼: SQL:IsNull()
插入字段的时候,当然你用DELPHI判断该字段输入变量是否是空了,^_^

20楼: 首先感谢各位富翁的支持,只是和我所期望的要求有点不同,贴子再留几天吧
分等我出差回来就散。。。

财务软件版21楼: [:D]