我正在做一个程序,要求能够按照拼音查询,以下拉框的形式,比如数据库中有"程序员"这个值,我输入"CXY",就在下拉框中显示,以供选择,该如何实现啊

解决方案 »

  1.   

    你首先的有拼音简码呀,数据库是不会自动按汉语拼音排序的,
    你可以做一个函数,把数据库中的汉字自动转换为拼音简码,再查询就方便了。
    function GetHzPy(const AHzStr: string): string;constChinaCode: array[0..25, 0..1] of Integer = ((1601, 1636), (1637, 1832), (1833, 2077),(2078, 2273), (2274, 2301), (2302, 2432), (2433, 2593), (2594, 2786), (9999, 0000),(2787, 3105), (3106, 3211), (3212, 3471), (3472, 3634), (3635, 3722), (3723, 3729),(3730, 3857), (3858, 4026), (4027, 4085), (4086, 4389), (4390, 4557), (9999, 0000),(9999, 0000), (4558, 4683), (4684, 4924), (4925, 5248), (5249, 5589));vari, j, HzOrd: integer;Hz: string[2];begini := 1;while i <= Length(AHzStr) dobeginif (AHzStr[i] >= #160) and (AHzStr[i + 1] >= #160) thenbeginHzOrd := (Ord(AHzStr[i]) - 160) * 100 + Ord(AHzStr[i + 1]) - 160;for j := 0 to 25 dobeginif (HzOrd >= ChinaCode[j][0]) and (HzOrd <= ChinaCode[j][1]) thenbeginResult := Result + char(byte('A') + j);break;end;end;Inc(i);end else Result := Result + AHzStr[i];Inc(i);end;end;///////////////////////////////////////
    这个函数用来吧你输入的汉字转换为拼音,保存再数据库中就行了。
      

  2.   

    comerliang,谢谢你,能说的在详细点吗,我另开帖子给你加分