2

MySQL データベースを使用して ASP からクエリを実行しています。結果に基づいて変数 (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

ありがとう!

4

3 に答える 3

1

行を変更してみることができます

if not rstemp.eof then

if rstemp.RecordCount > 0 then
于 2008-11-25T16:42:08.050 に答える
0

「N/A」が適用されるように、ファーストネームの結果のみを引き出すように SQL を変更しないでください。

sResult = getOtherElse("SELECT fullname FROM table WHERE id=" & inArr(j), "fullname AND fullname<>''")
于 2008-11-25T14:11:51.957 に答える
0

次のコード ブロックを置き換えます。

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」として設定されます

于 2008-11-25T14:18:54.453 に答える