我正在做一个程序,要求能够按照拼音查询,以下拉框的形式,比如数据库中有"程序员"这个值,我输入"CXY",就在下拉框中显示,以供选择,该如何实现啊
解决方案 »
- sqlserver 服务器,可以允许多少个客户端访问?可以控制吗
- 郁闷之极,也来散分
- 用VFP做后台的数据库,DElPHi中怎么样用SQL语句来查询日期型的字段呢??急等啊!!!
- 请教各位大虾,信息科技应该怎么分类?很急很急,给100分
- TWebBrowser小问题
- 如何将TTS引擎读出的语音保存成WAV?
- Delphi6 中 ValueListEditor 控件的输入法问题
- combobox的下拉字体大小在怎么改?比如下拉列表里的12号字改成16号。
- 只需要高手,您的一句话,帮忙把
- DBCtrlGrid中我如何根据表中的值决定某字段是否显示?可能有的行显示,有的不显示。
- 请问Delphi里有没有可以判断一个字符串是不是代表整型的函数啊!
- 需要能够打印出listview内容的控件
你可以做一个函数,把数据库中的汉字自动转换为拼音简码,再查询就方便了。
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;///////////////////////////////////////
这个函数用来吧你输入的汉字转换为拼音,保存再数据库中就行了。