我的数据库有一列是姓名,需要将其读出并按汉语拼音排序放在下拉列表中。如何对中文按汉语拼音排序是我的问题。

解决方案 »

  1.   

    楼上几位肯定没实际做过。这个东西我也曾经问过,没答案。
    都是告诉我在弄一个拼音字段来排序。access有些函数可以按照unicode来排序,可这个也不是按照拼音的。
    看看具体的数据库对中文的支持了。
      

  2.   

    order by 得到是按照gbk内码或者unicode排序的,不是按照拼音。
      

  3.   

    呵呵,我不知道别的数据库如何反正Access应该是按拼音排的序,SQL应该也是吧?都是M$的嘛!
      

  4.   

    access 也不是。他是部分汉字(gb2312里面第一区的)能按照拼音排序
      

  5.   

    刚才式了一下Oracle也是麻烦 pazee(耙子) 给说一个不在第一区的汉字,我在式一下
      

  6.   

    pazee(耙子) 交个朋友吧我的信箱:[email protected]
    如果可以的话,把您的qq号发给我
      

  7.   

    谢谢各位了,order by 就可以了,我试了。我是初学者,再问一个简单的问题:用order by 查询 执行ExecSQL后怎么把结果逐条取出呢?
      

  8.   

    pazee(耙子)前辈:access排序是为什么不是按拼音的啊?我找个程序,改了一个数据集的order by,列出来确实是按拼音排的啊。
    而且在access中选择有汉字的一列点工具栏里的排序,结果也是按拼音的,是我的理解有问题吗?前辈们指正。
      

  9.   

    这样行吗?假设你的数据集用的是adoquery1
    while not adoquery1.eof do
    begin
    //取出这条记录,可以通过fieldbyname之类的
      ..................
      next;//移到下条记录
    end;
      

  10.   

    order by 得到是按照gbk内码或者unicode排序的,不是按照拼音。原来如此,我一直以为是按照拼音排序的。
      

  11.   

    你用的一定是Query吧!对query的操作和对table的一样!
    逐条取出:
    with query1 do
    begin
       open;
       first;
       while not eof do
       begin
         ***:=filedbyname('***').asstring;
                          .
                          .
                          .
       end;
       
    end;
    这样就可以了!
      

  12.   

    to: wisenowa(127.0.0.1)你用区位码输入,56xx开始的都不是一区的了。
      

  13.   

    to killlaoli(菜鸟)你真的操作过吗?
    你排序了多少行?