FORM上有QUERY1组件,想写一个函数使用这个组件,应该怎么操作?
是在VAR中定义一个
var
query1:Tquery;
还是怎么样?我这样用了发现头一次运行可以,第二次执行到SQL.CLEAR就出错,请各位指教。

解决方案 »

  1.   

    在sql.clear之前有没有 close啊
    不用声明,直接用就是了。
      

  2.   

    既然窗体上有了QUERY1 ,那么就不要
    var
    query1:Tquery;
    它已经自动加上了
    --------
    query1.SQL.CLEAR;
      

  3.   

    但是函数里什么都不写的话,会提示
    UNdecleared identify : 'query1'
    程序如下unit Unit3;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, FileCtrl, StdCtrls, DB, DBTables,types,math;type
      TForm3 = class(TForm)
        DirectoryListBox1: TDirectoryListBox;
        FileListBox1: TFileListBox;
        Button1: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        ComboBox1: TComboBox;
        Query1: TQuery;
        Table4: TTable;
        Query4: TQuery;
        Button2: TButton;
        Table3: TTable;
        Query3: TQuery;
        Table2: TTable;
        Query2: TQuery;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      //  procedure Button3Click(Sender: TObject);
      private
      kind : integer;//0:initial;1:汇率;2明细;3:余额
      sum:double;
        { Private declarations }
      public    { Public declarations }
      end;implementation{$R *.dfm}
    function readhl(code:string;shijian:string):string;
    var
    a:string;
    begin
    with query1 do
    begin
    close;
    sql.clear;
    a:='select from 当日汇率.db where date1=:shijian';
    sql.add(a);
    params.parambyname('shijian').value:=shijian;
    open;
    result :=query1.fieldbyname(code).asstring;
    sql.clear;
    close;
    end;
    end;
      

  4.   

    可能有这样几个错误:
    unit Unit3;interfaceuses
    ......
    type
      TForm3 = class(TForm)
        ......
        Query1: TQuery;
        .....
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
      kind : integer;
      sum:double;
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form3: TForm3;   //建立一个Form对象implementation{$R *.dfm}
    function TForm3.readhl(code:string;shijian:string):string; //加类名
    var
      a:string;
    begin
      with query1 do
      begin
        close;
        sql.clear;
        a:='select from 当日汇率.db where date1=:shijian';
        sql.add(a);
        params.parambyname('shijian').value:=shijian;
        open;
        result :=query1.fieldbyname(code).asstring;
        close;
        sql.clear;
      end;
    end;