首页 > 学院 > 开发设计 > 正文

VB数据库编程经验两则

2019-11-18 17:35:24
字体:
来源:转载
供稿:网友
空字段的处理

  在往SQLServer数据库中添加记录时,每个字段必须给予明确赋值(即在没有给数据表设定缺省规则或给每个字段设定缺省值的情况下),否则便发生错误。因此我用VB编写了一个处理函数,将其放入标准模块,以供相应程序调用。函数首先判断是否给字段赋值,若没有,则根据字段类型的不同赋予不同数值(数字赋零,字符赋空格)。程序如下:

  ′zd变量采用变体类型

  Functionnonull(zdAsVariant)AsVariant

  IfIsNull(zd)Then

  ′字段没有赋值,判断其类型

  Ifzd.Type=12Then

  ′字符型字段,赋空格

  nonull=""

  Else

  ′数字型字段,赋0

  nonull=0

  EndIf

  Else

  nonull=zd

  EndIf

  EndFunction

  多字段记录的录入

  如果我们需要编写一个录入程序,向某个SQLServer数据表(SJB)中录入数据,而这个数据表中包含有多个字段,假设有30个字段,需通过InsertINTO语句完成。

  InsertINTOSJBValue(A0,A1,A2,...,A29)

  这里A0、A1...A29为字段的录入值,其中,若字段类型为字符型,需用引号括起。并且,如果操作者在录入数据时,对某些字段没有赋予明确值,则还需借助前面给出的处理函数给这些字段赋予相应的0或‘'。虽然,我们在编程时可依照InsertINTO语句句法依次罗列出30个字段值,然而,变通一下,利用循环语句,不仅可以达到异曲同工的效果,而且使得程序不再冗长、烦琐,可读性好。下面列出相关程序片段:

  ...

  DimsqlstrAsString

  Dimsqlstr1AsString

  DimiAsInteger

  Fori=0To29

  ′rs.rdoColumns(I)为数据表中的某一字段

  Ifrs.rdoColumns(i).Type=12Then

  ′字段类型为字符,在两侧用引号括起

  ′函数nonull()用于防止空值出现

  sqlstr=sqlstr&&"注释:"&&nonull(A(i))&&"注释:,"

  Else

  ′字段类型为数字型

  sqlstr=sqlstr&&nonull(A(i))&&","

  EndIf

  Next

  ′去掉最后一个逗号分隔符

  sqlstr=Left(Trim(sqlstr),Len(Trim(sqlstr))-1)

  ′插入一条记录到数据表中

  sqlstr1="insertintosjbvalues("&&sqlstr&&")"

  ...

  ′执行插入语句

  cn.Executesqlstr1

  ...->


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表