我用SQL   Server   2000建立了一个表   TempTable字段为   
  AuthorID   char(10)   
  AuthorName   varchar(20)   
  然后建立了一个存储过程Search_OnAuthor如下:   
  CREATE   PROCEDURE   dbo.Search_OnAuthor     
  @sAuthorName varChar(20),               
  @sTempABC varChar(20)           Output   
  AS   
  set   @sTempABC   =   @sAuthorName   
  select   *   from   TempTable   
      where   Author   like   '%'+@sTempABC+'%'   
    
  然后做了一个Midas结构的系统   
  数据库服务器利用TADOStoredProc来连接这个存储过程Search_OnAuthor用TDataSetProvider提供接口   
    
  客户端利用TClientDataSet获得接口   
  下面是调用Search_OnAuthor存储过程的方法:   
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)   
  {         
          ClientDataSet1->Close();   
          ClientDataSet1->Params->Clear();   
          ClientDataSet1->Params->CreateParam(ftString,   "sAuthorName",   ptInput);   
          ClientDataSet1->Params->CreateParam(ftString,   "sTempABC",   ptOutput);   
        
          ClientDataSet1->Params->ParamByName("sAuthorName")->AsString   =   AuthorNameEdit->Text;   
          ClientDataSet1->Params->ParamByName("sTempABC")->AsString   =   TempEdit->Text;   
    
    
          ClientDataSet1->Active   =   TRUE;   
    
          Edit3->Text   =   ClientDataSet1->Params->ParamByName("sTempABC")->AsString;   
  }   
  //---------------------------------------------------------------------------   
    
  发现运行结果不正确:   
  1.若AuthorNameEdit->Text没有非中文汉字时,Edit3->Text显示的与AuthorNameEdit->Text相同   
  2.若AuthorNameEdit->Text为中文汉字,Edit3->Text只显示AuthorNameEdit->Text汉字个数的一半.规律如下:   
  AuthorNameEdit->Text汉字个数     Edit3->Text显示的汉字个数   
  1 0   
  2 1   
  3 1   
  4 2   
  5 2   
  6 3   
  7 3   
  请问这是为什么?   
  系统:Windows   2000   Server,SQL   2000   SP4,   C++Builder   6.0 同样的问题,解决不了,请高手帮忙