Как проверить на пустой результат SQL в ASP - PullRequest
2 голосов
/ 25 ноября 2008

Я выполняю запрос от ASP с использованием базы данных MySQL, я хочу создать переменную (ssResult) на основе результата с именем человека (полное имя), если запись не существует, я хочу присвоить текст 'N / A 'к переменной, код ниже, в настоящее время я использую функцию getOther для своих соединений с базой данных, которая передает имя столбца «полное имя»:

ssResult = getOtherElse("SELECT fullname FROM table WHERE id=" & inArr(j), "fullname")

Ниже приведен код для функции getOtherElse, которая работает только при возвращении результата, но не при пустом результате:

Function getOtherElse(inSQL, getColumn)
    Dim conn, rstemp
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open myDSN
    Set Session("lp_conn") = conn
    Set rstemp = Server.CreateObject("ADODB.Recordset")
    rstemp.Open inSQL, conn 
    if not rstemp.eof then
        rstemp.movefirst
        getOtherElse=rstemp.fields(getColumn)
    else
        getOtherElse="N/A"
    end if
    rstemp.close
    set rstemp=nothing
    conn.close
    set conn=nothing
End Function

Спасибо!

Ответы [ 3 ]

1 голос
/ 25 ноября 2008

Вы можете попробовать изменить строку

if not rstemp.eof then

с

if rstemp.RecordCount > 0 then
0 голосов
/ 25 ноября 2008

Заменить этот блок кода:

if not rstemp.eof then
    rstemp.movefirst
    getOtherElse=rstemp.fields(getColumn)
else
    getOtherElse="N/A"
end if

с этим блоком кода:

Dim output
output = "N/A"

If Not rstemp.eof Then
    rstemp.movefirst
    value = rstemp.fields(getColumn)

    If trim(value) = "" Then
        value = "N/A"
    End If
End If

getOtherElse = value

Приведенный выше код всегда предполагает, что ничего не возвращается, пока соединение фактически не установит его как возвращаемое. И затем значение проверяется на наличие пустой строки и устанавливает значение также как «N / A»

0 голосов
/ 25 ноября 2008

Почему бы не изменить SQL так, чтобы он извлекал результат только с Именем, в этом случае применимо «N / A»:

sResult = getOtherElse("SELECT fullname FROM table WHERE id=" & inArr(j), "fullname AND fullname<>''")
...