TEXT
열이있는 SQL Server 2008의 테이블에
INSERT
의를 수행 할 필요가
를 사용하지 않고의 ADODB.Command, 그리고 나는 TEXT
열 작업에 대한 ADODB.Command
매개 변수를 가질 수 없습니다.추가 TEXT 매개 변수는 저장 프로 시저
테이블은 정의로 : 테스트 페이지는 다음과 같이이다
CREATE TABLE dbo.Test (
TestId INT NOT NULL IDENTITY(1, 1)
, CreationDate DATETIME NOT NULL
, Value TEXT NOT NULL
, CONSTRAINT pkTest PRIMARY KEY (TestId)
)
:
ADODB.Command error '800a0d5d'
Application uses a value of the wrong type for the current operation.
/test/default.asp, line 32
행 32 : 나는 그것을 실행하면
<!-- METADATA TYPE="typelib" NAME="Microsoft ActiveX Data Objects 2.8 Library" UUID="{2A75196C-D9EB-4129-B803-931327F72D5C}" VERSION="2.8" -->
<%@ CODEPAGE = 65001 LCID = 1040 %>
<%
Option Explicit
Response.Clear
Response.CharSet = "UTF-8"
Response.CodePage = 65001
Response.ContentType = "text/plain"
Dim i : i = 0
Dim value : value = ""
For i = 1 To 10000
If i Mod 3 = 0 Then
value = value & "a "
Else
value = value & "a"
End If
Next
Dim connection : Set connection = Server.CreateObject("ADODB.Connection")
connection.CommandTimeout = 5
connection.ConnectionString = "Server=XXX; Database=XXX; Uid=XXX; Pwd=XXX;"
connection.ConnectionTimeout = 5
connection.IsolationLevel = adXactReadUncommitted
connection.Mode = adModeRead
connection.Provider = "SQLOLEDB"
connection.Open
Dim command : Set command = Server.CreateObject("ADODB.Command")
command.ActiveConnection = connection
command.CommandText = "insert into dbo.Test (CreationDate, Value) values (getdate(), ?)"
command.CommandTimeout = 5
command.CommandType = adCmdText
command.Parameters.Append command.CreateParameter("Value", adVarChar, adParamInput, 0, value)
command.Prepared = True
command.Execute
Set command = Nothing
connection.Close
Set connection = Nothing
Response.End
%>
,이 오류가 발생합니다 은
command.Parameters.Append command.CreateParameter("Value", adVarChar, adParamInput, 0, value)
크기 매개 변수를 변경해 보았습니다. 그래서
cmd.CommandText = "sp_test"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Refresh
cmd.Parameters(1) = 11
:이 매개 변수를 선언하지 않고 그들을 서버를 형성 읽기 나는라는 Microsoft 기술 자료 문서 How to call SQL Server stored procedures from ASP을 발견 그물 주위를 찾고
는 그 "방법 1"예, 재미있다 INSERT
수행하는 프로 시저 생성 :
CREATE PROCEDURE dbo.TestInsertion (@CreationDate DATETIME, @Value TEXT) AS BEGIN
SET NOCOUNT ON
INSERT INTO dbo.Test (CreationDate, Value) VALUES (@CreationDate, @Value)
SELECT TestId = SCOPE_IDENTITY()
END
및 이와 같은 페이지의 비트 변형 ADODB.Command
:
Dim command : Set command = Server.CreateObject("ADODB.Command")
command.ActiveConnection = connection
command.CommandText = "dbo.TestInsertion"
command.CommandTimeout = 5
command.CommandType = adCmdStoredProc
command.Parameters.Refresh
command.Parameters(1).Value = Date
command.Parameters(2).Value = value
command.Prepared = True
command.Execute
Set command = Nothing
및 작동했습니다.
저장 프로 시저를 사용하지 않고도 기존 ASP에서 ADODB.Command
에 TEXT
매개 변수를 지정할 수 있습니까?
우수한 'adLongVarChar' 작품; 그러나 매개 변수의 길이를 지정해야합니다. 그렇지 않으면'Parameter 개체가 부적절하게 정의됩니다. 불일치하거나 불완전한 정보가 제공되었습니다. 그에 따라 귀하의 답변을 업데이트했습니다. – Albireo