检查空字符串

时间:2016-06-30 10:25:17

标签: string vbscript

我想知道如何检查空字符串。

我创建了一个SQL语句,用于选择数据库中的某些数据。

qry_pkv = "SELECT DISTINCT MANDT, PATH301 FROM NC301B " & _
          "WHERE EDIPROC like 'P30_'" & _
          "AND (LF301M > 0) " & _
          "AND (PATH301 LIKE '%\pkv_dav\%') " & _
          "OR  (PATH301 LIKE '%\PKV_DAV\%');"

该声明效果很好,但我不知道如何检查qry_pkv内是否有任何值。

rs.open qry_pkv, cn, 3

Zeile = "Skriptausfuehrung wird gestartet."
Call Trace (3, "I", Zeile)

If qry_pkv <> Null Then
    rs.MoveFirst

    ReDim Preserve AusgabeDir_pkv(0)

    i = 0

    Zeile = "PKV_DAV Verzeichnisse"                   'Überschrift für LOG-Datei.
    Call Trace (3, "@", Zeile)                        'Überschrift wird in LOG-Datei geschrieben.

    Do While Not rs.EOF                               'Schleife für durchsuchen der Datenbank.
        ReDim Preserve AusgabeDir_pkv(i)
        ReDim Preserve MANDT_pkv(i)
        AusgabeDir_pkv(i) = rs("DIRIN")               'Ausgabeverzeichnis wird in Variable gespeichert und verarbeitet.
        MANDT_pkv(i) = rs("MANDT")
        Zeile = "Verzeichnis in Bearbeitung: " & "MDT " & MANDT_pkv(i) & " PFAD " & AusgabeDir_pkv(i)  'Status der Verarbeitung.
        Call Writelog (Zeile)                         'Status wird in LOG-Datei geschrieben.
        ' call loeschen_gio(AusgabeDir_gio(i))        'Funktion löschen wird aufgerufen um Verzeichnis zu leeren wenn älter n Tage.

        i = i+1
        rs.MoveNext
    Loop
Else
    Zeile = "PKV_DAV Verzeichnisse"                   'Ergebnis wird in LOG-Datei geschrieben.
    Call Trace (3, "@", Zeile)                        'Prozedur "WriteLog" wird aufgerufen
    Zeile = "Keine PKV_DAV Verzeichnisse vorhanden."  'Ergebnis wird in LOG-Datei geschrieben.
    Call Trace (3, "-", Zeile)                        'Prozedur "WriteLog" wird aufgerufen
End If

我的计划是,如果空Else,脚本会跳转到qry_pkv语句。

3 个答案:

答案 0 :(得分:1)

由于@SearchAndResQ指出qry_pkv是您的查询字符串,因此它不太可能是Null。请检查记录集中的光标位置:

If Not rs.EOF Then
  ...
Else
  ...
End If

答案 1 :(得分:0)

NullEmpty不同,与""(空字符串)不同。比较var <> Null甚至不起作用。

  • 使用功能IsNull检查Null值。
  • 使用函数IsEmpty检查Empty值(主要是未初始化的变量)。与空字符串进行比较还会涵盖Empty值,因此,如果要区分Empty"",则需要在测试空字符串之前测试Empty值。
  • 使用常规comparison operators检查空字符串。

在你的情况下,你可能想要这样的东西:

If qry_pkv <> "" Then
  ...
Else
  ...
End If

答案 2 :(得分:0)

检查字符串的长度。如果它是&lt; = 0,那么你没有想要的大量内容:

If len(qry_pkv) <= 0 Then
   '//...the rest of your code
else
   '//...the else
end if

仅供参考,我的习惯是使用三个字符'//作为我的vbscript评论,因为我的眼睛跳过了'单独。

有关Len()函数的更多信息,请参阅https://msdn.microsoft.com/en-us/library/42byt104(v=vs.84).aspx