Delphi中Result都可以返回哪些类型啊?
result 据说是函数的别名,可以用来返回结果的,
result可以返回 数组类型 或 TADOQuery 类型吗?

解决方案 »

  1.   

    本来是通过函数名来表示返回值的
    但是,如果函数无参数,很难区分 表达式里的函数名 是 表示返回值 还是 递归调用本函数
    有了result,就不会有歧义了
      

  2.   


    result可以返回 数组类型 或 TADOQuery 类型吗? 
    可以 
      

  3.   

    function TDataBaseConnection.chaxun:array of String;
    这么写对吗?
    不对该怎么写呢?
      

  4.   

    Type
      Tarrstr=array of String;
    function TDataBaseConnection.chaxun:TarrStr;
      

  5.   

    在文件 Datamodule 中定义了一个函数,返回查询结果。
    function TDataBaseConnection.chaxun:TADOQuery;
    begin
      With ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select F_PROVINCE from T_ZJK_SF');
        Open;
      end;
      result:=result;
    end;
    在另一个函数定义一个TAODOQuery 变量,用于接收,你看下面这么写对吗?大哥费心了!
    procedure TFormSpecialist_Imp.FormCreate(Sender: TObject);
    var
      q:TADOQuery;
    begin
      q:=DataBaseConnection.chaxun;
      if q.RecordCount>0 then
      begin
        while not q.Eof do
        begin
          ComboBox1.Items.Add(q.FieldByName('F_province').AsString);
          q.Next;
        end;
      end
      else
      begin
        ShowMessage('省份查询失败,请再试!');
      end;
    end;
      

  6.   

    在文件 Datamodule 中定义了一个函数,返回查询结果。 
    function TDataBaseConnection.chaxun:TADOQuery; 
    begin 
      With ADOQuery1 do 
      begin 
        Close; 
        SQL.Clear; 
        SQL.Add('Select F_PROVINCE from T_ZJK_SF'); 
        Open; 
      end; 
      result:=ADOQuery1; 
    end; 
    在另一个函数定义一个TAODOQuery 变量,用于接收,你看下面这么写对吗?大哥费心了! 
    procedure TFormSpecialist_Imp.FormCreate(Sender: TObject); 
    var 
      q:TADOQuery; 
    begin 
      q:=DataBaseConnection.chaxun; 
      if q.RecordCount>0 then 
      begin 
        while not q.Eof do 
        begin 
          ComboBox1.Items.Add(q.FieldByName('F_province').AsString); 
          q.Next; 
        end; 
      end 
      else 
      begin 
        ShowMessage('省份查询失败,请再试!'); 
      end; 
    end;这么写对吗?改怎么改正?
      

  7.   

    ADOQuery1是全局对象吗?
    否则:
    function TDataBaseConnection.chaxun:TADOQuery; 
    begin 
      With ADOQuery1 do 
      begin 
        Close; 
        SQL.Clear; 
        SQL.Add('Select F_PROVINCE from T_ZJK_SF'); 
        Open; 
      end; 
      result:=ADOQuery1; 
    end; 
    ADOQuery1是哪里来的?
      

  8.   

    在 类中加了 一个 TADOQuery 的组件,这个组件定义的变量。放在Type 中定义的。全文件是这样的:unit DBConn;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes,Controls,
      Dialogs, StdCtrls,ExtCtrls, Grids, OleServer,
      ComObj, DBCtrls, DB, ADODB{ExcelOp,};type
      TDataBaseConnection = class(TDataModule)
        ADOCon: TADOConnection;
        ADOTable1: TADOTable;
        DataSource1: TDataSource;
        ADOQuery1: TADOQuery;
        procedure DataModuleCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        function chaxun:TADOQuery;
      end;var
      DataBaseConnection: TDataBaseConnection;implementation
    {$R *.dfm}procedure TDataBaseConnection.DataModuleCreate(Sender: TObject);
    begin
      ADOCon.ConnectionString:='Provider=MSDAORA.1;Password=ZJK_6610;User ID=HBZJK;Data Source=HBSTA;Persist Security Info=True;';
      ADOCon.Connected:= true;
    end;Type
      Tarrstr=array of String;function TDataBaseConnection.chaxun:TADOquery;
    var
      i:integer;
    begin
      With ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select F_PROVINCE from T_ZJK_SF');
        Open;
      end;
      result:=ADOQuery1;
    end;end.在另一个函数定义一个TAODOQuery 变量,用于接收,你看下面这么写对吗?大哥费心了! 
    procedure TFormSpecialist_Imp.FormCreate(Sender: TObject); 
    var 
      q:TADOQuery; 
    begin 
      q:=DataBaseConnection.chaxun; 
      if q.RecordCount>0 then 
      begin 
        while not q.Eof do 
        begin 
          ComboBox1.Items.Add(q.FieldByName('F_province').AsString); 
          q.Next; 
        end; 
      end 
      else 
      begin 
        ShowMessage('省份查询失败,请再试!'); 
      end; 
    end; 这么写对吗?改怎么改正?提示错误,怎么改呢?
      

  9.   

    procedure TFormSpecialist_Imp.FormCreate(Sender: TObject); 
    在另一个单元中