sql := 'select * from employees where employeeno like ''%'+Trim(employeeno_Edit1.Text)+'''';
var i,empno:integer; sempno:string; __sql:string; begin empno := StrToInt(Trim(Edit1.Text)); for i:=0 to 8-len(Trim(Edit1.Text)) do sempno := '0'+sempno; sempno := sempno + IntToStr(empno); __sql := 'select * from employee where empno='''+sempno+''''; end;
1.方法一:var i:Double; begin if TryStrToFloat(edit1.Text,i) then begin with adoquery1 do begin close; sql.Text:='select * from [员工信息表] where [雇员编号]='''+FormatFloat('00000000',i)+''''; open; end; end; 2.方法二:with adoquery1 do begin close; sql.Text:='select * from [员工信息表] where [雇员编号] like ''%'+edit1.text+''''; edit1.Text:=sql.Text; end;
修正一下: 方法2:with adoquery1 do begin close; sql.Text:='select * from [员工信息表] where [雇员编号] like ''%'+edit1.text+''''; open; end;
方法三:procedure TForm1.Button1Click(Sender: TObject); var s:string; i:integer; begin if trim(edit1.Text)<>'' then begin i:=8-Length(edit1.Text); s:=StringOfChar('0',i); s:=s+edit1.Text; with adoquery1 do begin close; sql.Text:='select * from [员工信息表] where [雇员编号]='''+s+''''; open; end; end; end;
select * from table where id like '%'+rtrim(ltrim(@Edit1))+'%'
当然也可以先传入trim(Edit1.Text)的值,sql语句里就不截取空格了
str:string;
str:=inttostr(00000000+strtoint(edit1.text));
select * from table where ziduan=str
之前语句是这样的:where employeeno='''+employeeno_Edit1.Text+'''
如何改成like语句?
i,empno:integer;
sempno:string;
__sql:string;
begin
empno := StrToInt(Trim(Edit1.Text));
for i:=0 to 8-len(Trim(Edit1.Text)) do
sempno := '0'+sempno;
sempno := sempno + IntToStr(empno); __sql := 'select * from employee where empno='''+sempno+'''';
end;
比如 20
会出现
00020
00120
00220
***
99920
etc
str1, str2: string;
begin
Str1 := '00000000';
Str2 := Str1 + trim(Edit1.Text);
i1 := length(Str1);
i2 := length(Str2);
Edit2.Text := copy(Str2, i2 - i1 + 1, i1);Edit1 输入
Edit2 输出__sql := 'select * from employee where empno='''+trim(Edit2.Text)+'''';
在Edit1中输入4563可以查询到数据库表A对应00004563的雇员信息;对Edit1中输入编号进行左补零操作,再对相应编号雇员信息进行查询。
i:Double;
begin
if TryStrToFloat(edit1.Text,i) then begin
with adoquery1 do begin
close;
sql.Text:='select * from [员工信息表] where [雇员编号]='''+FormatFloat('00000000',i)+'''';
open;
end;
end;
2.方法二:with adoquery1 do begin
close;
sql.Text:='select * from [员工信息表] where [雇员编号] like ''%'+edit1.text+'''';
edit1.Text:=sql.Text;
end;
方法2:with adoquery1 do begin
close;
sql.Text:='select * from [员工信息表] where [雇员编号] like ''%'+edit1.text+'''';
open;
end;
var
s:string;
i:integer;
begin
if trim(edit1.Text)<>'' then begin
i:=8-Length(edit1.Text);
s:=StringOfChar('0',i);
s:=s+edit1.Text;
with adoquery1 do begin
close;
sql.Text:='select * from [员工信息表] where [雇员编号]='''+s+'''';
open;
end;
end;
end;