在数据库中取出几个定义了坐标的点,把这几个点的名称同时显示在图片上,我的代码如下,
但是image1.Canvas.TextOut(x ,y,name)没有输出,x,y,name都没取到值
请帮我看看是什么原因,怎么改procedure TForm3.Button1Click(Sender: TObject);
var i:integer;
name:string;
x:integer;
y:integer;
di:integer; begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select max(id) as id from ip.db ');
query1.Open;
di:=query1.fieldbyname('id').AsInteger;
edit2.Text:= query1.fieldbyname('id').Asstring; //id有值输出
for i:=0 to di do //这个好象不能把所有点同时显示在图片上,循环一次就覆盖了以前的点
begin query2.Close;
query2.SQL.Clear;
query2.SQL.Add('select * from ip.db where id=''i''');
query2.Open;
name:=query2.fieldbyname('名称').AsString;
x:= query2.fieldbyname('x').AsInteger;
y:=query2.fieldbyname('y').AsInteger;
edit3.Text:= query2.fieldbyname('名称').AsString; //没有输出
image1.Canvas.TextOut(x ,y,name);
end; end;
但是image1.Canvas.TextOut(x ,y,name)没有输出,x,y,name都没取到值
请帮我看看是什么原因,怎么改procedure TForm3.Button1Click(Sender: TObject);
var i:integer;
name:string;
x:integer;
y:integer;
di:integer; begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select max(id) as id from ip.db ');
query1.Open;
di:=query1.fieldbyname('id').AsInteger;
edit2.Text:= query1.fieldbyname('id').Asstring; //id有值输出
for i:=0 to di do //这个好象不能把所有点同时显示在图片上,循环一次就覆盖了以前的点
begin query2.Close;
query2.SQL.Clear;
query2.SQL.Add('select * from ip.db where id=''i''');
query2.Open;
name:=query2.fieldbyname('名称').AsString;
x:= query2.fieldbyname('x').AsInteger;
y:=query2.fieldbyname('y').AsInteger;
edit3.Text:= query2.fieldbyname('名称').AsString; //没有输出
image1.Canvas.TextOut(x ,y,name);
end; end;
解决方案 »
- 恭喜SuperTitan001升级
- fastreport memo中文字运行时显示不出来,关掉重开发现没保存下来
- MDIForm程序中,为什么MDIChlid子窗口放到最在后,MDIChlid子窗口的最小,还原,关闭三个安钮就不见了,以至无法再操纵,应改哪些属性?3
- 求助高手 delphi中DLL如何调用DLL?
- 3层结构中 应用服务器的窗体部分如何能用到远程数据模块中的过程和方法?
- 参与者均有分!
- ttreeview控件的使用。
- 关于启动屏保的问题
- delphi+access做出来的软件 和 access 直接做出来的程序 有什么区别?是不是这样的话,用 delphi做出来的程序有些多余?直接用access做算了
- 基于chrome框架的libcef控件调用javascript显示地图问题
- 数据处理
- 如何将一个数据库的数据导成sql语句
var i:integer;
name:string;
x:integer;
y:integer;
di:integer; begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select max(id) as id from ip.db ');
query1.Open;
di:=query1.fieldbyname('id').AsInteger;
edit2.Text:= query1.fieldbyname('id').Asstring; //id有值输出
for i:=0 to di do //这个好象不能把所有点同时显示在图片上,循环一次就覆盖了以前的点
begin query2.Close;
query2.SQL.Clear;
//query2.SQL.Add('select * from ip.db where id=''i''');
query2.SQL.Add('select * from ip.db where id='+IntToStr(i));
query2.Open;
name:=query2.fieldbyname('名称').AsString;
x:= query2.fieldbyname('x').AsInteger;
y:=query2.fieldbyname('y').AsInteger;
edit3.Text:= query2.fieldbyname('名称').AsString; //没有输出
image1.Canvas.TextOut(x ,y,name);
end; end;
Id字段到底是INT,还是VARCHAR没看懂
type mismatch in expression 这是哪个字段不匹配
试试可能你的id字段是字符型的
query2.Open;//调试到这里就提示 type mismatch in expression
name:=query2.fieldbyname('名称').AsString;
x:=query2.fieldbyname('x').AsInteger;
y:=query2.fieldbyname('y').AsInteger;
image1.Canvas.TextOut(x,y,name);
'select * from ip.db where id='''+IntToStr(i)+'''');