请问delphi中如何往数据库中插入Unicode的数据?我是这样写的 
var 
 s:WideString;   s:= '축구의 특수 기술을 배워보자 '; //韩文 insert into tables values( '1 ', '2 ', 'sds ',s); 但这样执行后在数据库中显示的这条记录是 1  2 sds  ????? 我想请问要对s进行怎样的处理才能是数据库正确显示?能否给出处理函数?先谢谢各位高手了.

解决方案 »

  1.   


    转换一下
    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); 
      

  2.   

    数据库字段要用nvarchar,原来的varchar不行。在ms sql server中用来存unicode的字段有nchar,nvarchar,ntext 
      

  3.   

    不能直接insert,可以先给字段赋空值,然后select出来,然后
    query.Edit;
    query.FieldValues['字段名'] := s;
    query.Post;
      

  4.   

    借楼主的贴子问一个类似的问题: 怎样才能将Unicode 显示在DELPHI的Form上?如果不用第三方控件,有没有什么好办法?