select * from access表 order by 名字
解决方案 »
- 动态创建的窗体怎么传值
- delphi 试题 急急急
- delphi能否利用flash activx控件调用flash中的函数
- 请问谁知道CreateService服务管理函数中的TagId是什么意思,该如何使用?
- 急,stringgrid的一个问题
- 请问如何计算两个毫秒级时间之间的差值?
- 谁知道 安易财务系统中 用的控件包是 什么? 比如TTHDBgrid ,TTHFilter, tFormpaint,tsmaskedit
- WebBrowser的问题,用什么方法获得框架中的内容?
- 关于bookmark的问题
- 自定义数据类型与TStringList类型的转换?
- 如何取出某个时间字段离当前系统时间最近的记录(SQL SERVER)
- PItemIDList在帮助中怎么找不到?
只能用索引
index on py(姓名) to aa
然后
seek "zs"来查找张三,在access怎么实现呢?
因为我一次只想对一个表操作
我觉得自定义函数索引是很好的功能阿,应该access 中有的啊
COM对象(COM object)是实现某一特殊功能的二进制代码,包括实现功能的一些方法,这些方法通过COM接口(COM interfaces)被访问。但是你不能直接访问COM接口,你可以通过COM类(COM class)来操作COM接口。
二、引用ADOX和JRO。
开发平台或客户端需要安装MDAC 2.1数据库引擎,你可以从微软公司http://www.microsoft.com/data下载,也可以在安装IE5.0中选择定制安装“动态数据绑定”选项。
在Delphi IDE中选择菜单ProjectImport Type Library,出现Import Type Library对话框,选择“Microsoft ADO Ext. 2.x for DDL and Security”,将Class Name中TTable改为TADOXTable(因为TTable组件在Delphi中已经存在并注册);选择“Microsof Jet and Replication Object 2.x Library”。然后单击“Install”安装,便在Delphi的Imports目录下生成ADOX_TLB.pas和JRO_TLB.pas两个文件。在Unit文件的Uses中加入ComObj、ADOX_TLB、JRO_TLB,就可以通过COM操作ADOX和JRO对象了。
打开ADOX_TLB.Pas文件,可以看到定义的接口有_Catalog、_Table、_Index等。 procedure TForm1.btnCreateDBClick(Sender:TObject);
var
Catalog:_Catalog;//定义为_Catalog的接口类型
Table:_Table;
Index:_Index;
strCon:string;//定义连接字符串
begin
Catalog:=CreateComObject(Class-Catalog) as _Catalog;
//建立Catalog实例,也可以用 Catalog:=CoCatalog.Create;
strCon:="Provider=Microsoft.Jet.OleDB.4.0;"
//通过Jet OleDb直接操作Access数据库
+"Data Source=d:ComTestmyDb.mdb;"
//数据库位置
+"Jet OLEDB:Engine Type=5;"
//Jet 4.x格式,如为4,则Jet 3.x格式
+"Locale Identifier=0x0804;"
//支持简体中文(一定要有)
+"Jet OLEDB:Database Password=mypwd";
//加入密码
Catalog.Create(strCon); //建立数据库
{建立数据表和索引}
catalog._Set_ActiveConnection(strCon);
//连接到数据库
with Catalog do
begin //建立数据表
Table:=Create Com Object(Class-Table) as _Table; //建立Table实例
with Table do
begin
Name:="Tel";
Columns.Append("Name",adVarWChar,8);
//数据类型详见MDAC SDK
Columns.Append("Phone",adVarWchar,20);
Index:=CreateComObject(Class_Index) as _Index; //建立索引
with Index do
begin
Name:="MyIndex";
Columns.Append("Name",adVarWchar,8);
end;
Indexes.Append(Index,EmptyParam);
end;
Tables.Append(Table);
end;
end;
然后我用findfirst('zs',....)就可以找到它了,有没有办法解决呢?
unit MainFrm;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TMainForm = class(TForm)
ChineseEdt: TEdit;
PYEdt: TEdit;
btnConvert: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure btnConvertClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
MainForm: TMainForm;implementation{$R *.DFM}// 获取指定汉字的拼音索引字母,如:“汉”的索引字母是“H”
function GetPYIndexChar( hzchar:string):char;
begin
case WORD(hzchar[1]) shl 8 + WORD(hzchar[2]) of
$B0A1..$B0C4 : result := "A";
$B0C5..$B2C0 : result := "B";
$B2C1..$B4ED : result := "C";
$B4EE..$B6E9 : result := "D";
$B6EA..$B7A1 : result := "E";
$B7A2..$B8C0 : result := "F";
$B8C1..$B9FD : result := "G";
$B9FE..$BBF6 : result := "H";
$BBF7..$BFA5 : result := "J";
$BFA6..$C0AB : result := "K";
$C0AC..$C2E7 : result := "L";
$C2E8..$C4C2 : result := "M";
$C4C3..$C5B5 : result := "N";
$C5B6..$C5BD : result := "O";
$C5BE..$C6D9 : result := "P";
$C6DA..$C8BA : result := "Q";
$C8BB..$C8F5 : result := "R";
$C8F6..$CBF9 : result := "S";
$CBFA..$CDD9 : result := "T";
$CDDA..$CEF3 : result := "W";
$CEF4..$D188 : result := "X";
$D1B9..$D4D0 : result := "Y";
$D4D1..$D7F9 : result := "Z";
else
result := char(32);
end;
end;procedure TMainForm.btnConvertClick(Sender: TObject);
var
I: Integer;
PY: string;
s: string;
begin
s := " ;
I := 1;
while I <= Length(ChineseEdt.Text) do
begin
PY := Copy(ChineseEdt.Text, I , 1);
if PY >= Chr(128) then
begin
Inc(I);
PY := PY + Copy(ChineseEdt.Text, I , 1);
s := s + GetPYIndexChar(PY);
end
else
s := s + PY;
Inc(I);
end;
PYEdt.Text := s;
end;end.
不过不能将多音字辨别