不会吧!我的是english,支持繁体文,我测试就是ok!create table #T(des nvarchar(30))
insert into #T 
select N'中国' union all
select N'韩国' union all
select N'马来西亚' declare @des as nvarchar(30)
set @des = N'澳大利亚'
update #T
set des = @des
where des = N'马来西亚'select * from #T
/*
des                            
------------------------------ 
中国
韩国
澳大利亚(3 row(s) affected)
*/--一切ok!你肯定是前台传入就是乱码,否则怎么会呢?要用utf-8传入啊

解决方案 »

  1.   

    我用的是jdbc和存储过程来实现方位sqlserver的我字段chinese为nvachar,num为int发现了两个问题:1:更新时候代码为
    cstmt = connection.prepareCall("{ call update(?) }");
    cstmt.setObject(1,"汉字");
    cstmt.executeUpdate();CREATE PROCEDURE update
    @chinese nvarchar(50)
     ASUPDATE language
    Set chinese= @chinese 
    WHERE num = 1
    GO问题:我发现这样无法支持汉字,更新到数据库中全是乱码2:另外取数据的时候用的getObject把他们放在list中ResultSet rs = stmt.executeQuery("select chinese from language WHERE num = 1");
    List list = new ArrayList();
    while(rs.next()){
    int i = rs.getMetaData().getColumnCount();
    Object object[] = new Object[i];
    for(int j=0;j<i;j++){
    object[j] = rs.getObject(j+1);
    }
    list.add(object);
    }问题:我发现当字段设为nvarchar时候用getObject根本取不到字符串的数据,但只有nvarchar支持中文,并且这两个方法是公用的,存取数据时候必须要写两个公用方法,这个方法该怎么改呢?大侠们帮忙看看吧,我要实现这两个功能该用什么方法呢?
      

  2.   

    我也有相同的问题!求高手解救!!!!
    我用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 Server 2000 SP4, C++Builder 6.0