请高手看看这段代码错在那里怎么改?(新手求教100分)(100分)

  • 主题发起人 主题发起人 myv
  • 开始时间 开始时间
M

myv

Unregistered / Unconfirmed
GUEST, unregistred user!
Var
i:Byte;
s:string;
str:string;

str:='Select * from "student.db" where Name<>"" ';

For i=1 to Strtoint(Length(Trim(Edit1.Text))) do
begin
s:=copy(TRim(Edit.Text),i,1);
str:=str+'and name like "'+s+'"';
end;
sql.add(str);
open
道谢!
 
假如真是
For i=1 to Strtoint(Length(Trim(Edit1.Text))) do

i=1 -> i:=1
Strtoint(Length(Trim(Edit1.Text))) -> Length(Trim(Edit1.Text))
----------------------- ------------------------
int NOT str int
u get it?
 
For i=1 to Strtoint(Length(Trim(Edit1.Text))) do
该为:
For i=1 to Length(Trim(Edit1.Text)) do
 
Var
i:Byte;
s:string;
str:string;
begin

str:='Select * from "student.db" where Name<>"" ';

For i:=1 to Strtoint(Length(Trim(Edit1.Text))) do 在此处抱错
begin
s:=copy(TRim(Edit.Text),i,1);
str:=str+'and name like "'+s+'"';
end;
sql.add(str);
open
报错内容:
不相容‘string'并且’integer';
末说明标识符‘SQL';
末说明标识符‘open';
谢谢!

 
改成以下代码又错!
Var
i:Byte;
s:string;
str:string;
begin

str:='Select * from "student.db" where Name<>"" ';

For i:=1 to Length(Trim(Edit1.Text)) do

begin
s:=copy(TRim(Edit1.Text),i,1);
str:=str+'and name like "'+s+'"';
end;
sql.add(str);
open

end;

end.
报错内容:
末说明标识符‘SQL';
末说明标识符‘open';
谢谢!
 
For i=1 to Strtoint(Length(Trim(Edit1.Text))) do
该为:
For i=1 to Length(Trim(Edit1.Text)) do
因为Length(Trim(Edit1.Text))的结果为integer。不必要加上Strtoint函数
sql.add(str);
open
该为
query1.sql.add(str);
query1.open
(“query1"为控件名称)
 
这代码是同时查数据库相一个字段内几个内容,如键入:AB 结果是A与B两个内容,我
修该代码可以运行,查询报错不能运行,为什么?
 
query1如果多次使用,应该
query1.close;
query1.sql.clear;
query1.sql.add(str);
query1.open
 
Var
i:Byte;
s:string;
str:string;

query.sql.clear;
query.active:=false;
str:='Select * from "student.db" where Name<>"" ';
For i:=1 to Length(Trim(Edit1.Text)) do
begin
s:=copy(TRim(Edit.Text),i,1);
str:=str+'and name like "'+s+'"';
end;
query.sql.add(str);
query.active:=true;
 
刘李子分析的对
 
多人接受答案了。
 
后退
顶部