求一个简单的查询问题:
现在有一个数据库表1,如下:
No mmin mmax 4 5 6 7 //标题,就是字段名,4/5/6/7表示精度
1 1 3.5 4.5 7.1 11 14
2 3.5 6.3 5.6 9 14 20
3 6.3 10 7.1 11 18 25
……
现在要求用户输入m和精度值,然后根据m 与表中的mmin与mmax做比较【mmin<=m<=mmax】,然后根据
输入的精度值,比如为5,查出表中的数值(7.1),然后将这个数值赋值给一个Edit控件。
代码格式如下:
procedure TForm1.Button1Click(Sender: TObject);
var
m : Double;
JD: Integer;
SQLStr : String
begin
//赋值
m := StrToFloat(Edit1.txt);
JD := StrToInt(Edit2.txt);
//求SQL查询语句
SQLStr := 'Select JD = :JD Form Table1 Where min <= :m and mmax >= :m';
with Query1 do
begin
close;
SQL.Clear;
SQL.Add(SQLStr);
ParamByName('JD').AsString := IntToStr(JD);
ParamByName('m').AsString := FloatToStr(m);
prepare;
Open;
end;
//显示查询出的精度数值
Edit3.txt := Query1.ParamByName('JD').AsString;
end;******************
请高手指点一下是那儿错了?
现在有一个数据库表1,如下:
No mmin mmax 4 5 6 7 //标题,就是字段名,4/5/6/7表示精度
1 1 3.5 4.5 7.1 11 14
2 3.5 6.3 5.6 9 14 20
3 6.3 10 7.1 11 18 25
……
现在要求用户输入m和精度值,然后根据m 与表中的mmin与mmax做比较【mmin<=m<=mmax】,然后根据
输入的精度值,比如为5,查出表中的数值(7.1),然后将这个数值赋值给一个Edit控件。
代码格式如下:
procedure TForm1.Button1Click(Sender: TObject);
var
m : Double;
JD: Integer;
SQLStr : String
begin
//赋值
m := StrToFloat(Edit1.txt);
JD := StrToInt(Edit2.txt);
//求SQL查询语句
SQLStr := 'Select JD = :JD Form Table1 Where min <= :m and mmax >= :m';
with Query1 do
begin
close;
SQL.Clear;
SQL.Add(SQLStr);
ParamByName('JD').AsString := IntToStr(JD);
ParamByName('m').AsString := FloatToStr(m);
prepare;
Open;
end;
//显示查询出的精度数值
Edit3.txt := Query1.ParamByName('JD').AsString;
end;******************
请高手指点一下是那儿错了?
解决方案 »
- delphi edit1取值 问题
- 500分求拦截数据的方法!
- fastreport做复合报表时,同时有纵向和横向的页面,预览时有时横向的页面也变成了纵向,郁闷中...请帮帮忙!!!!
- 有关locate问题,救急!!!
- 我想知道一下delphi流行前沿的东西!?
- 单击dbgrid一列运用picklist将单元格值修改后如何使另一列值作相应改变?
- 怎么在浏览网页时关闭delphi的debug功能?
- 散分!今天是我父亲的生日,做儿子的不能在身边敬老,在这里给您跪下啦!
- 200分解决获取打印机支持的全部纸张类型,在Win2k下出现的"stack overflow"的错误!!
- DELPHI中是否有PASCAL中用到的类似DOS 的头文件。
- 更新问题
- delphi里有int48类型?
JDStr, SQLStr: string;
m: Double;
begin
m := StrToFloat(Edit1.txt);
JDStr := Edit2.Text;
SQLStr := 'Select JD' + JD + ' as JD Form Table1 Where :m between mmin and mmax';
with Query1 do
begin
close;
SQL.Clear;
SQL.Add(SQLStr);
ParamByName('m').AsFloat := m;
Open;
if not IsEmpty then
Edit3.Text := FieldByName('JD').AsString;
end;
end;
字段名,4,5,6,7改掉,不要用数字。比如说,改成JD4, JD5...(以下以此为例)var
JDStr, SQLStr: string;
m: Double;
begin
m := StrToFloat(Edit1.txt);
JDStr := Edit2.Text;
SQLStr := 'Select JD' + JD + ' as JD Form Table1 Where :m between mmin and mmax';
with Query1 do
begin
close;
SQL.Clear;
SQL.Add(SQLStr);
Parameters.ParamByName('m').Value := m;
Open;
if not IsEmpty then
Edit3.Text := FieldByName('JD').AsString;
end;
end;