如何知道表中的字段是否允许空值?

wwhsp 2004-04-16 03:58:51
我想知道一个指定的表,其中的某一个字段它是否允许空值,用ADO语句如何写?
...全文
98 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
junki 2004-04-16
  • 打赏
  • 举报
回复
up
ukyoxh 2004-04-16
  • 打赏
  • 举报
回复
陈剑华就是厉害哈

佩服佩服!!

嘿嘿
yanlong 2004-04-16
  • 打赏
  • 举报
回复
收藏
华芸智森 2004-04-16
  • 打赏
  • 举报
回复
'/数据表字段或记录集字段属性.
Public Type SmFiedArrtr
FieldName As String '字段名称
FieldType As String '字段类型
FieldIsNull As String '是否接受NULL
FieldDefSize As Long '定义的据长度
FieldActSize As String '实际数据长度
End Type
'
'取某 数据表 下所有的字段及其属性
'函数名:GetTabFldAttrib
'参数: P_Cnn ADO连接,DateTabName 目标数据表名
'返回值:SmFiedArrtr 类型数组
'例: FiedAtrrib=GetTabFldAttrib(P_CNN,"ACHGOODS")
Public Function GetTabFldAttrib(ByRef P_Cnn As ADODB.Connection, _
DbTableName As String) As SmFiedArrtr()
Dim A As Long
Dim StrSql As String
Dim Rs As New ADODB.Recordset
Dim ReturnVal() As SmFiedArrtr
Dim ReID As Long

On Error Resume Next

StrSql = "Select Top 1 * From [" & DbTableName & "]" '取字段名
Set Rs = RsOpen(P_Cnn, StrSql)
Set Rs.ActiveConnection = Nothing
Erase ReturnVal
For A = 0 To Rs.Fields.Count - 1
ReID = ReID + 1
ReDim Preserve ReturnVal(ReID)
ReturnVal(ReID - 1).FieldType = Rs.Fields(A).Type '数据类型
ReturnVal(ReID - 1).FieldName = Rs.Fields(A).Name '字段名
ReturnVal(ReID - 1).FieldIsNull = Rs.Fields(A).Attributes And adFldIsNullable '是否可接受NULL
ReturnVal(ReID - 1).FieldDefSize = Rs.Fields(A).DefinedSize '定义的数据长度
ReturnVal(ReID - 1).FieldActSize = 0 '实际数据长度(因只有字段名),故此值是0
Next
Set Rs = Nothing
GetTabFldAttrib = ReturnVal
End Function
yassee 2004-04-16
  • 打赏
  • 举报
回复
rs.open "select f1,f2 from a",cn
if isnull(rs!f1) then msgbox "f1为空"
if isnull(rs!f2) then msgbox "f2为空"
wwhsp 2004-04-16
  • 打赏
  • 举报
回复
up
【源码免费下载链接】:https://renmaiwang.cn/s/zrcae 相信有很多MySQL资深用户对其字段属性的概念仍存疑惑,以下是一系列问题:为何允许非null字段存储空值允许null的字段在判断不为空时应采用何种条件表达式(如`IS NULL`或`<> ''`)?这些疑问促使我们深入探讨null与not null之间的差异。首先,我们需要澄清“空值”和“null”的概念:在MySQL中,“空值”通常指用户未输入数据的字段值,而“null”是一个特殊的数据库保留值,表示信息缺失。尽管两者都代表数据不存在的情况,但它们在存储方式上存在显著区别。“空值”不占用数据库存储空间,而“null”则会占用一个位来标识是否为null值(尤其适用于MyISAM表)。此外,在字段约束方面,“非null”类型禁止插入null值,必须存入有效数据;允许null的字段则可存储null或其它合法数据。关于性能优化,使用“non null”约束通常优于“null”,因为后者在索引和查询时需进行额外处理。“null”值不会被B树索引包含,可能影响查询效率;而“<> ''”条件虽然能检测空字符串,但无法排除null值。因此,在判断字段是否为空时应优先选择`IS NULL`操作符而非“<>”。例如,“WHERE col1 IS NOT NULL”将准确返回非null记录,而“WHERE col1 <> ''”仅过滤空字符串而不包含null值。在涉及计数操作时,函数`COUNT(*)`会自动忽略null值但包括空字符串;若需统计所有非null记录数量,则应使用该函数。此外,在处理可能为null的字段数据时可采用`IFNULL()`函数进行默认值填充,例如“IFNULL(column, default_value)”。对于特殊类型如TIMESTAMP,插入null可能导致无效时间戳(如“0000

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧