문제

그래서 텍스트 필드를 업데이트해야합니다. 아래에 사용될 때 업데이트 명령문이나 WriteText 문이 작동하지 않습니다.

CREATE TABLE MyTable (IDField int, MyField text)
INSERT INTO MyTable (IDField) SELECT 1

DECLARE @Data1 varchar(8000), @Data2 varchar(8000), @ptrval binary(16)

SELECT @Data1 = REPLICATE('1',8000)
SELECT @Data2 = REPLICATE('2',8000)

-- this sets MyField to string of only 8000 characters
UPDATE MyTable SET MyField = @Data1 + @Data2 WHERE IDField = 1 


SELECT @ptrval = TEXTPTR(MyField ) 
FROM MyTable 
WHERE IDField = 1 

-- this causes an error: Incorrect syntax near '+'.
--WRITETEXT MyTable.MyField @ptrval @Data1 + @Data2

로컬 변수가 유형 텍스트가 될 수없는 경우 어떻게해야합니까? (SSQL Server 2005가 있다면 Varchar (Max)를 사용하지만 그렇지 않습니다.

도움이 되었습니까?

해결책

대신 updatetext를 사용해보십시오

WRITETEXT MyTable.MyField @ptrval @Data1 
UPDATETEXT MyTable.MyField @ptrval 8000 NULL @Data2

삽입 오프셋은 0 기반이므로 8000은 8001st 문자에 쓸 것입니다. NULL 값은 insert_offset 위치에서 기존 텍스트의 끝까지 모든 데이터를 삭제하는 값으로 삭제 오프셋이 NULL입니다.

ref : http://msdn.microsoft.com/en-us/library/ms189466.aspx

NVARCHAR (NTEXT 필드에서 사용해야하는)의 최대 용량은 사용중인 Varchar 필드의 최대 용량을 가지므로 블록 크기를 4000으로 줄여야합니다.

다른 팁

값은 실제로 길이가 다양하므로 내일 이렇게 시도해 볼 것입니다.

WRITETEXT MyTable.MyField @ptrval @Data1 
UPDATETEXT MyTable.MyField @ptrval Len(@Data1) NULL @Data2

위의 일이 효과가 있었지만 먼저 길이를 계산해야했습니다.

WRITETEXT MyTable.MyField @ptrval @Data1
SET @Len = LEN(@Data1)
UPDATETEXT MyTable.MyField @ptrval @Len NULL @Data2

매개 변수가 예상되는 Len ()과 같은 함수를 사용할 수없는 이유는 확실하지 않습니다.

나는 이것에 힘들었습니다.

나는 긴 줄 (실제로 풍부한 텍스트 상자 내용)을 ntext feild에 저장하려고 노력했습니다.

솔루션은 상당히 간단한 것으로 판명되었습니다.

        SQLst = "UPDATE  Test SET Text = cast (@value as ntext)" & _
            " WHERE  Num = 3 "

        Debug.Print(SQLst.ToString)

        Dim cnn As New SqlServerCe.SqlCeConnection(Tcon)
        Dim cmd = New SqlCeCommand(SQLst, cnn)
        cmd.Parameters.AddWithValue("@value", strQuestionQUESTION)
        cnn.Open()
        cmd.ExecuteNonQuery()
        cnn.Close()

참고 : strquestionquestion은 약 3000 자 또는 포맷 코드 및 텍스트였습니다. "Num"은 "Test"데이터베이스의 정수 필드 일뿐입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top