1

ここに私のコードがあります:

Dim CompanyName, _
    CompanyDomain, _
    CompanyEmail, _
    CompanySupportPhone

Call GetEmailList

Sub GetEmailList
    dim sql
    dim companydata

    sql = ""
    sql = sql & " DECLARE @CompanyName VARCHAR(100);"
    sql = sql & " DECLARE @CompanyDomain VARCHAR(100);"
    sql = sql & " DECLARE @CompanyActivityEmail VARCHAR(100);"
    sql = sql & " DECLARE @CompanySupportPhone VARCHAR(100);"

    sql = sql & " SELECT"
        sql = sql & " @CompanyName = CASE WHEN Setting = 'CompanyName'"
        sql = sql & " THEN StringValue ELSE @CompanyName END,"
        sql = sql & " @CompanyDomain = CASE WHEN Setting = 'CompanyDomain'"
        sql = sql & " THEN StringValue ELSE @CompanyDomain END,"
        sql = sql & " @CompanyActivityEmail = CASE WHEN Setting = 'CompanyActivityEmail'"
        sql = sql & " THEN StringValue ELSE @CompanyActivityEmail END,"
        sql = sql & " @CompanySupportPhone = CASE WHEN Setting = 'CompanySupportPhone'"
        sql = sql & " THEN StringValue ELSE @CompanySupportPhone END"
    sql = sql & " FROM ClientSettings"
    sql = sql & " WHERE Setting in ('CompanyDomain','CompanyActivityEmail','CompanySupportPhone','CompanyName')"

    sql = sql & " SELECT ISNULL(@CompanyName, '') AS CompanyName, ISNULL(@CompanyDomain, '') AS CompanyDomain, ISNULL(@CompanyActivityEmail, '') AS CompanyEmail, ISNULL(@CompanySupportPhone, '') AS CompanySupportPhone"
    set companydata =  getRecordset(sql)

    CompanyName = companydata("CompanyName") ' LINE 80
    CompanyDomain = companydata("CompanyDomain")
    CompanyEmail = companydata("CompanyEmail")
        CompanySupportPhone = companydata("CompanySupportPhone")

        companydata.Close
        Set companydata = Nothing
End Sub

これはエラーをスローします:

80行目

要求された名前または序数に対応するコレクション内にアイテムが見つかりません。

上記の80行目にマークを付けました。SQL Server Manager でこれとまったく同じ SQL を実行すると、結果が返されます。

CompanyName CompanyDomain   CompanyEmail    CompanySupportPhone
MyCompanyName   http://localhost    MyCompanyName@email.com 801-555-1212

私がここで間違っていることは何か分かりますか?

GetRecordSet は、データベース呼び出しを正しくロードして処理します。この関数は、他の 1,000 の場所で機能します。問題はそこにないと確信しています。

4

1 に答える 1

5

追加

sql = sql & " SET NOCOUNT ON;"

最初のSQLステートメントとして。

使用量にカウントを設定

于 2012-04-06T18:16:46.497 に答える