function EditComplete(mEdit: TEdit; mItems: TStrings; mCase: Boolean = True): Boolean; var I, T: Integer; vSubStr, S: string; begin Result := False; if (not Assigned(mEdit)) or (not Assigned(mItems)) then Exit; vSubStr := mEdit.Text; if not mCase then vSubStr := UpperCase(vSubStr); for I := 0 to Pred(mItems.Count) do begin S := mItems[I]; if not mCase then S := UpperCase(S); if (Pos(vSubStr, S) = 1) and (vSubStr <> S) then begin T := Length(vSubStr); mEdit.Text := mItems[I]; mEdit.SelStart := T; mEdit.SelLength := Length(mItems[I]) - T; Result := True; Break; end; end; end; { EditComplete }procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_BACK, VK_DELETE, VK_LEFT, VK_RIGHT, VK_DOWN, VK_UP: ; else EditComplete(TEdit(Sender), Memo1.Lines, False); end; end;
组sql语句吧 加%号支持模糊查询
Var NameStr:String;∥设置字符串中间变量 Begin NameStr:=′王′; Query1SQLClear{清除SQL属性中的SQL命令语句} Query1SQLAdd(′Select*FromCustomdbwhere(Name1>=N1)and(Name2<=N2)′);∥SQL命令语句 Query1params[0]AsString:=NameStr+chr(0);∥控制参数在NameStr+Chr(0) Query1params[1]AsString:=NameStr+chr($ff);∥和NameStr+Chr($ff)之间 Query1Open;∥打开数据库,执行SQL查询 End;
我的输入字段要从edit.text中获取
Query1.Sql.Add('Select * from Table1 where Name='''+'%'+Edit1.Text+'%'+'''');
with adoquery1 do begin close; sql.clear; sql.add('select * from table where Name=:Name'); Parameters.ParamByName('Name').value:=trim(edit1.text)+'%'; // Parameters.ParamByName('Name').value:='%'+edit1.text)+'%'; sql.prepared; execsql; end;//edit1change事件
mCase: Boolean = True): Boolean;
var
I, T: Integer;
vSubStr, S: string;
begin
Result := False;
if (not Assigned(mEdit)) or (not Assigned(mItems)) then Exit; vSubStr := mEdit.Text;
if not mCase then vSubStr := UpperCase(vSubStr);
for I := 0 to Pred(mItems.Count) do begin
S := mItems[I];
if not mCase then S := UpperCase(S);
if (Pos(vSubStr, S) = 1) and (vSubStr <> S) then begin
T := Length(vSubStr);
mEdit.Text := mItems[I];
mEdit.SelStart := T;
mEdit.SelLength := Length(mItems[I]) - T;
Result := True;
Break;
end;
end;
end; { EditComplete }procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_BACK, VK_DELETE, VK_LEFT, VK_RIGHT, VK_DOWN, VK_UP: ;
else EditComplete(TEdit(Sender), Memo1.Lines, False);
end;
end;
加%号支持模糊查询
NameStr:String;∥设置字符串中间变量
Begin
NameStr:=′王′;
Query1SQLClear{清除SQL属性中的SQL命令语句}
Query1SQLAdd(′Select*FromCustomdbwhere(Name1>=N1)and(Name2<=N2)′);∥SQL命令语句
Query1params[0]AsString:=NameStr+chr(0);∥控制参数在NameStr+Chr(0)
Query1params[1]AsString:=NameStr+chr($ff);∥和NameStr+Chr($ff)之间
Query1Open;∥打开数据库,执行SQL查询
End;
这条语句对吗
begin
close;
sql.clear;
sql.add('select * from table where Name=:Name');
Parameters.ParamByName('Name').value:=trim(edit1.text)+'%';
// Parameters.ParamByName('Name').value:='%'+edit1.text)+'%';
sql.prepared;
execsql;
end;//edit1change事件