to mastersky:换过,还是出错,不认yearnoref。 to fishzxy:换过,一样!
若你是用sql server语句的,那么你可以直接这样写一个sql 语句,sqlstring:='select * from Table.db where table.year = '+''''+edit1.text+'''';这 . . query1.SQL.Add(sqlstring); . .样就可以执行了?
yearno:=edit1.Text ; query1.Close; query1.SQL.Clear; query1.SQL.Add('select * from "Table.db"'); query1.SQL.add('where table.year=:yearnoref'); query1.ParamByName('yearnoref').asstring:=yearno; query1.Prepare ; query1.Open; //*************** 帮你改了 ******************** ADate:=Edit1.text;// edit1.text:='nnnn-n-n'procedure myQry(ADate:TString); const s='select * from table where year=#%s#'; begin with query1 do // TAdoQuery begin if Active then Close; Sql.clear; sql.add(format(s,[ADate]); Open; end; end; {附:你的Query1是不是根本就没设参数?如上例不需设置参数即可查询,适用于参数少的查询}
to newyj:我是这么写的!
另query1.ParamByName('yearnoref').asstring//asstring这里要根据数据表中相应的类型
再,你可以换种方法试试
query1.Params[0].asstring:=yearno;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from "Table.db"');
query1.SQL.add('where year=:yearnoref');
query1.ParamByName('yearnoref').asstring:=yearno;
query1.Prepare ;
query1.Open;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from "Table.db"');
query1.SQL.add('where table.year='+yearno);
query1.Prepare ;
query1.Open;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from "Table.db"');
query1.SQL.add('where year='+''''+yearno+'''');//如果year 不是数字类型
query1.SQL.add('where year='+yearno);//如果year 是数字类型query1.Prepare ;
query1.Open;
yearno:=edit1.Text ;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from table.db);
query1.SQL.add('where year=:yy');
query1.params[0].asstring:=edit1.text;
query1.Open
year不是关键字
query1.SQL.add('where years=:yearnoref');
query1.ParamByName('yearnoref').asstring:=yearno;
不要字段名前面的表名。
试试看!
to fishzxy:换过,一样!
.
.
query1.SQL.Add(sqlstring);
.
.样就可以执行了?
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from "Table.db"');
query1.SQL.add('where table.year=:yearnoref');
query1.ParamByName('yearnoref').asstring:=yearno;
query1.Prepare ;
query1.Open;
//*************** 帮你改了 ********************
ADate:=Edit1.text;// edit1.text:='nnnn-n-n'procedure myQry(ADate:TString);
const s='select * from table where year=#%s#';
begin
with query1 do // TAdoQuery
begin
if Active then Close;
Sql.clear;
sql.add(format(s,[ADate]);
Open;
end;
end;
{附:你的Query1是不是根本就没设参数?如上例不需设置参数即可查询,适用于参数少的查询}
看来全是没设参数惹的祸! 很好设的,从对象浏览器中选中query1,找到params项点击'...'。
1:
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from Table.db');
query1.SQL.add('where table.year=:yearnoref');
query1.ParamByName('yearnoref').asstring:=edit1.text;
query1.Open;2:(适合字段为字符)
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from Table.db');
query1.SQL.add('where table.year="'+edit1.text+'"');
query1.Open;