请问delphi中如何往数据库中插入Unicode的数据?我是这样写的
var
s:WideString; s:= '축구의 특수 기술을 배워보자 '; //韩文 insert into tables values( '1 ', '2 ', 'sds ',s); 但这样执行后在数据库中显示的这条记录是 1 2 sds ????? 我想请问要对s进行怎样的处理才能是数据库正确显示?能否给出处理函数?先谢谢各位高手了.
var
s:WideString; s:= '축구의 특수 기술을 배워보자 '; //韩文 insert into tables values( '1 ', '2 ', 'sds ',s); 但这样执行后在数据库中显示的这条记录是 1 2 sds ????? 我想请问要对s进行怎样的处理才能是数据库正确显示?能否给出处理函数?先谢谢各位高手了.
转换一下
type
TCodePage=(cpStandard,cpGB,cpBig);//unicode 转换类型,
const CodePageID:array[0..2] of integer=(0,936,950);
function StringToUnicode(s:string;CodePage:TCodePage):widestring;
var
SourceLen, ResultLen: Integer;
Buffer: array[0..1023] of WideChar;
begin
SourceLen := Length(s);
if SourceLen < SizeOf(Buffer) div 2 then
Result := SysAllocStringLen(Buffer, MultiByteToWideChar(CodePageID[ord(codePage)], 0,
PChar(s), SourceLen, Buffer, SizeOf(Buffer) div 2))
else
begin
ResultLen := MultiByteToWideChar(CodePageID[ord(codePage)], 0,
Pointer(s), SourceLen, nil, 0);
Result := SysAllocStringLen(nil, ResultLen);
MultiByteToWideChar(CodePageID[ord(codePage)], 0, Pointer(s), SourceLen,
Result, ResultLen);
end;
end;
eg:
AText:=StringToUnicode(AText,cpBig);
query.Edit;
query.FieldValues['字段名'] := s;
query.Post;