使用環境
Windows 7
Delphi XE2
SQL Server 2008 Express
SQL Serverに対してUnicode文字を書き込みたいんですが、例えば
Edit;(もしくはAppend;)
FieldByName('ID').AsInteger:=1;
FieldByName('Field1').AsString:='翻译';
Post;
とすると書き込めるのですが、
ADOのQueryのSQL文を使って
SQL.Text:='update Table1 set Field1 = '+QuotedStr('翻译')+
' where ID = 1 ';
ExecSQL;
とか
SQL.Text:='insert into Table1 (ID,Field1) values(1,'+QuotedStr('翻译')+
' ) ';
ExecSQL;
みたいに書き込もうとすると文字化けしてUnicode文字部分が?マークになってしまいます。
ちなみに対象フィールドはnchar型にしてます。
SQL文を使って書き込むことはできないんでしょうか?
どなたかご教授願います。
>SQL.Text:='update Table1 set Field1 = '+QuotedStr('翻译')+
> ' where ID = 1 ';
>ExecSQL;
>とか
>SQL.Text:='insert into Table1 (ID,Field1) values(1,'+QuotedStr('翻译')+
> ' ) ';
>ExecSQL;
試していませんが、
SQL.Text:='update Table1 set Field1 = N'+QuotedStr('翻译')+' where ID = 1 ';
SQL.Text:='insert into Table1 (ID,Field1) values(1,N'+QuotedStr('翻译')+' ) ';
のようにNをつけるのは、いかがですか?
igy様
ありがとうございました。
教えて頂いた方法でうまくいきました。
今後とも何かありましたらよろしくお願い致します。
ツイート | ![]() |