Я выполняю запрос из ASP с помощью базы данных MySQL, я хочу создать переменную (ssResult) на основе результата с именем человека (полное имя), если запись не существует, я хочу назначить текст «N / A» в переменную, код ниже, в настоящее время я использую функцию getOther для своих подключений к базе данных, которая передает имя столбца "fullname":
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
Спасибо!






Почему бы не изменить SQL, чтобы вывести результат только с именем, в этом случае применимо «N / A»:
sResult = getOtherElse("SELECT fullname FROM table WHERE id = " & inArr(j), "fullname AND fullname<>''")Не существует имени столбца "полное имя И полное имя" ""
Извините, должно было быть полное имя <> '' угловые скобки не вышли в сообщении
Замените этот блок кода:
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».
Вы можете попробовать изменить строку
if not rstemp.eof then
с
if rstemp.RecordCount > 0 then
Этот код уязвим для внедрения sql