私は SQL Server に比較的慣れておらず、Visual Basic 6 のレガシー アプリで作業しています。SQL INSERT コマンドを使用して、0 から 255 までの任意の ASCII 文字を含む文字列を VARCHAR フィールドに挿入するにはどうすればよいですか?
質問する
2192 次
3 に答える
1
文字列を文字列の文字のASCIIコードを表す16進値のシーケンスにエンコードし、シーケンスの0x
前に配置してから、全体に適用して、その式をDDLステートメントで使用できます。CAST(… AS varchar(n))
私が言いたいのは、もしあなたの文字列が例えば#X?!v
だったら、あなたはそれをこのように挿入するでしょう
UPDATE table
SET column = CAST(0x23583F2176 AS varchar(n))
WHERE condition
したがって、どこかにNUL文字があった場合、結果のシーケンスに00
は対応する位置が含まれます。
私は実際にはVBを「話す」ことはしませんが、そうすると、生の文字列を受け入れて16進コードの文字列を返す関数を作成することを検討するでしょう。したがって、DDLコマンドを作成するとき、VB命令はおそらく次のようになります。このようなもの:
cmd.CommandText = "UPDATE table SET column = CAST(0x" & HexEncode(RawString) & " AS varchar(n)) WHERE condition"
于 2012-07-06T14:39:42.477 に答える
0
ADO パラメーターの構文は手元にありませんが、ADO パラメーターを使用して一般的な文字列 (NUL を含む) を列に挿入できるはずですvarchar
。
于 2012-07-08T08:00:19.927 に答える
0
プロジェクトに ADO への参照があると仮定すると、次のようになります。
Dim oConn As Connection
Dim oCmd As Command
Set oConn = New Connection
oConn.Open <your connection string goes here>
Set oCmd = New Command
oCmd.ActiveConnection = oConn
oCmd.CommandText = "INSERT INTO TableName (ColumnName) VALUES('string')"
oCmd.Execute
于 2012-07-06T11:53:14.933 に答える