Date: Thu, 19 Feb 2004 13:10:48 +0900
From: who@sub.example.jp
夏目です。いつも、拝見しております。
ADPからMSDEへの文字列の受渡しにつまずいています。
次のようなVBAで、MSDEのストアドプロシージャを実行しました。
With MyCM
.ActiveConnection = MyCN
.CommandType = adCmdStoredProc
.CommandText = "sp_QCPC_GetData3"
.Parameters.Append .CreateParameter("ControlNum", adVarChar,
adParamInput, 13, gstrControlNum)
.Parameters.Append .CreateParameter("ControlNum1", adVarChar,
adParamOutput, 16)
.Execute
End With
Alter Procedure sp_QCPC_GetData3
@ControlNum nvarchar(13),
@ControlNum1 nvarchar(16) OUTPUT
As
set nocount on
SET @ControlNum1 = @ControlNum
return
gstrControlNumは、"TL-タイプ8-00"という文字列です('タイプ8'が全角です)。
帰ってきたControlNum1をみると、、"TL-タイプ8-0"となり、1文字欠けています。
次に、ストアドプロシージャ
Alter Procedure sp_QCPC_GetData4
As
set nocount on
Declare @ControlNum nvarchar(13)
Declare @ControlNum1 nvarchar(16)
SET @ControlNum = 'TL-タイプ8-00'
SET @ControlNum1 = @ControlNum
SELECT @ControlNum1
return
を実行すると、正常に、"TL-タイプ8-00"が帰ってきます。
adVarCharとnvarcharは、同じと考えていましたが、受渡しがうまくいっていないよ
うです。
どうしてこうなるのか、教えていただけないでしょうか。
Access2000、MSDEです。
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|