0

ここにいるすべてのプロプログラマー、私はここにまったく新しいので、ここで質問として正しくする方法がわからないかもしれません..

もし私が助けを求めることができるなら、あなたはここにここにここにいることができますか... oop構造を持つ単純なASPに問題があります...

関数 savedata pls で私を助けてください。実行すると、

call savedata("insert","test_","name, id","lalala, 222","User_ID=3")

エラーが発生しました:

INSERT INTO test_ (name, id) VALUES (lalala, 222)

... Microsoft VBScript ランタイム エラー '800a01a8'

必要なオブジェクト: 「Conn」

<%
function declare_conn(sql,atr)

dim conn, conn_
set conn = Server.CreateObject("ADODB.Connection")
conn = Connect()
set conn_ = Server.CreateObject("ADODB.Recordset")
strConnect = _T("Driver={MySQL ODBC 3.51 Driver};Server=localhost;"
     "Database=MyDatabase;User=MyUserName;Password=MyPassword;Option=4;");

if Cstr(atr)="open" then
    conn_.CursorLocation = adUseClient
    conn_.Open sql, conn, 3, 2
    set conn_.ActiveConnection = nothing
    set declare_conn=conn_
else if Cstr(atr)="exec" then
        conn.Open
        conn.Execute sql
    end if
end if
end function


function calldata(a,b,c,d)

dim conn_string, sql_string

    if c<>"" and d<>"" then
        sql_string="SELECT "&Cstr(a)&" FROM "&Cstr(b)&" WHERE "&Cstr(c)&" = '"&Cstr(d)&"'"
        response.write(sql_string)
    else
        sql_string="SELECT "&Cstr(a)&" FROM "&Cstr(b)
        response.write(sql_string)
    end if

set conn_string = Server.CreateObject("ADODB.Recordset")
set conn_string = declare_conn(sql_string,"open")
set calldata = conn_string

end function


function savedata(a,b,c,d,e)

dim conn_string, sql_string, c_, d_, update_string
update_string = ""  
    if Cstr(a)="insert" then
        sql_string="INSERT INTO "&Cstr(b)&" ("&Cstr(c)&") VALUES ("&Cstr(d)&")"
    end if
    response.write(sql_string)
    'response.end
    if Cstr(a)="update" then
        c_ = split(c,", ",-1)
        d_ = split(d,", ",-1)
        response.write(c_)
        response.end
        if ubound(c_) = ubound(d_) then
            do while not c_.eof
                update_string=update_string&"("&Cstr(c_)&"="&Cstr(d_)&"),"
                c_.MoveNext : d_.MoveNext
            loop
        else
            %><script type="text/javascript">alert("save function error: array out of bound");</script> <%
        end if
        if Cstr(e)<>"" then
            sql_string="UPDATE "&Cstr(b)&" SET "&update_string&" WHERE "&Cstr(e)
        else
            sql_string="UPDATE "&Cstr(b)&" SET "&update_string
        end if
    end if

'set conn_string = Server.CreateObject("ADODB.Recordset")
call declare_conn(sql_string,"exec")
end function
%>

このエラーは実際にはどういう意味ですか? データベース ADO への接続を作成します

connect()

それでも、私は問題なく走ることができます

calldata()

編集-dwerty_weird


騒いでごめんなさい..

この質問については、次の「設定」がないことがわかりました。

set conn=Connect() 

お手数をおかけして申し訳ありません...しかし、他の質問については、私は問題を抱えています

call savedata("update","test_","name, id","'lalala', 222","bil=1") 

エラーが発生します: Microsoft VBScript runtime error '800a01a8' Object required /bkpi-msn/SPPro/function.asp, line 56 –</p>

誰でも私を助けることができますか?

4

1 に答える 1

0

データに一重引用符がありません。name の値は文字列であり、一重引用符で囲む必要があります。

これは calldata() ですでに実装されているため、正常に機能しています。セーブデータも同様に更新してください。

注: これはすべての文字列パラメーターに適用され、他の方法 (# を使用) で日付 / 日時パラメーターにも適用される場合があります。

これを出発点として使用し、開発のベスト プラクティスに従ってください。

お役に立てれば!

ヴィベク

于 2013-04-02T07:22:23.550 に答える