2011-12-22 14 views
0

このストアドプロシージャに返される各フィールドには値がありますが、値を書き出すときには空白になります。何か案は?私のレコードセット値を失う

Dim objConn 
Set objConn = Server.CreateObject("ADODB.Connection") 
objConn.Open "driver={SQL Server};server=localhost;database=db","test","test" 

Set emailCMD = Server.CreateObject("ADODB.Command") 
emailCMD.ActiveConnection = objconn 
emailCMD.CommandType = adCmdStoredProc 
emailCMD.CommandText = "get_email" 

emailCMD.Parameters.Append(emailCMD.CreateParameter("userid",adInteger,adParamInput,,userid)) 
emailCMD.Parameters.Append(emailCMD.CreateParameter("emailaddress",adVarChar,adParamInput,100,emailaddress)) 
emailCMD.Parameters.Append(emailCMD.CreateParameter("emailjobid",adInteger,adParamInput,,emailjobid)) 
emailCMD.Parameters.Append(emailCMD.CreateParameter("businessid",adInteger,adParamInput,,businessid)) 

Set emailrs = emailCMD.Execute 

emailbody = emailRS("emailjobdesc") 
sendto = emailrs("emailaddress") 
emailsubject = emailrs("emailjobsubject") 
emailid = emailrs("emailid") 
emailpassword = emailrs("emailpassword") 
businessname = emailrs("businessname") 

response.write emailbody & "<br>" & sendto & "<br>"&emailsubject&"<br>"&emailid&"<br>"&emailpassword&"<br>"&businessname 
response.End 
+0

いつも同じフィールドが空白ですか? –

+0

emailbodyとsentoが入力され、他の文字列が空白であることがわかっている場合は、すべての&文字の周りにスペースを入れてみてください。 –

+1

ストアドプロシージャのコードを投稿してください。フィールドが連続したステートメントによって作成されている場合は、それらに到達するには 'NextRecordset'メソッドを使用する必要があります。 –

答えて

1

は私が

置き換え、それを固定する方法です。
mysql odbc 5.1ドライバ。

接続オブジェクトのcursorlocationプロパティを変更して解決しました。

set Connection = CreateObject("ADODB.Connection") 
Connection.cursorlocation = 3 ''adUseClient 
Connection.Open ConnStr 
0

データベースから抽出するフィールドには、出力またはReturnValueパラメータが必要です。

http://www.w3schools.com/ado/met_comm_createparameter.asp

http://www.devx.com/tips/Tip/13399

+0

私はOPがパラメータからではなく結果セットから読み込んでいると思います。 –

+0

私はストアドプロシージャの1行を返しています。何らかの理由でそれが爆発している。私が出力パラメータでデータを返す場合、それは動作します。なぜそれはちょうど1列で爆破するのですか? –

+0

"出力パラメータでデータを返すと動作します。"では、出力パラメータを使用する際の問題は何ですか? – Dee

0

あなたのストアドプロシージャのGET_EMAILは6列を返している場合 - これらのカラムのテキスト/ ntext型のいずれかでありますか? (あなたはSQL Server 2000データベースに接続していますか?)

ODBCを使用しないで接続文字列を変更します。

返された列の順序を変更して、テキスト列が最後になるようにすると、問題が解決される可能性があります。過去にこの問題が多かったので、選択リストの最後にテキスト列を列挙すると、常に問題が解決されました。

私は2年前にこの質問をしました SQL Server text column affects results returned to classic ASPと私の接​​続文字列をMicrosoft OLE DBプロバイダに変更して以来、何の問題もありませんでした。

同じ問題に直面して
Set emailRS = server.createobject("ADODB.Recordset") 
emailrs.cursorlocation = adUseClient 
emailrs.open emailCMD 
1

Set emailrs = emailCMD.Execute 

を:ここで

関連する問題