2017-11-22 4 views
0

SQL Server 2008 R2のテーブルで更新を実行しようとしていますが、この列は8000文字しか書きません。ASP Classic/SQL Serverで8000文字の文字列

カラムのデータ型はtextに設定されていますが、すでに成功していないvarchar(max)に変更しようとしました。

cast('variable' as text)cast('variable' as varchar(max))もまた失敗しました。

SQLコンソール(私は画面上でresponse.writeを作成し、コピーして貼り付けたもの)または手動で8000文字以上を挿入して同じ更新を行うと、Microsoft Visual Studioを使用して動作します。

sql_Up = "UPDATE ABVC_Eventos SET titulo_eve = '" & Strip(Evento) & "', cod_sup_eve = '" & Strip(cod_sup_eve) & "', cod_sup2_eve = '" & Strip(cod_sup2_eve) & "', texto_eve = CAST('" & Strip(texto_eve) & "' AS TEXT), WHERE id_eve = '" & Strip(Cod_Evento) & "'" 
set Rs_sqlUp = bco.Execute(sql_Up) 

「ストリップ」機能は、サニタイズ用です。

+2

私の後に繰り返します:私はします。決してない。再び。ビルド。 SQL。好き。それ。 - すべての状況でパラメータ化されたクエリを使用する必要があります**。 [ASPクラシックでクエリパラメータを作成および使用する方法](https://stackoverflow.com/q/1092512/18771)をご覧ください。コードを書き直してもエラーが発生した場合は、それに応じて質問を更新してください。 – Tomalak

+0

うん...悲しいことに、これは古いレガシーシステムであり、私はそれについて多くを行うことはできません。 –

+1

@JairoFilhoこの場合、あなたはそれを修正するために多くをすることはできません。ごめんなさい。 – Lankymart

答えて

-1

テキストの変換にChr(varname)またはCStr(varname)を使用します。 あなたが受け取ったエラーをvarchar(最大)変換するには、ここで説明してください。

関連する問題