有一个表:Users,
有如下字段:UserName,Password,EMail都为文本类型,
我要求输出所有UserName记录,如何实现呢?
例如将所有的UserName读入到一个String类型的变量中。

解决方案 »

  1.   

    function TPublicClass.DataComboBox(Tablevalue,
      Fieldvalue: String): TStrings;
    var
      RS : TStrings;
    begin
      RS := TStringList.Create;
      Result := RS;
      RS.Clear;
      Try
        DataModuleFrm.JzclsyADOConnection.GetTableNames(RS,False);
        //DataModuleFrm.JzclsyADOConnection.GetProcedureNames(RS);
        {}
      Except
        Application.MessageBox('对不起,数据表提取错误,请重新再试','操作提示',MB_OK + MB_ICONINFORMATION);
        Exit;
      end;    
      if RS.IndexOf(Tablevalue) = -1 then
      begin
        Application.MessageBox('对不起,您所要搜索的数据表不存在','操作提示',MB_OK + MB_ICONINFORMATION);
        RS.Free;
        Exit;
      end;
      RS.Clear;
      DataModuleFrm.JzclsyADOConnection.GetFieldNames(Tablevalue,RS);
      if RS.IndexOf(Fieldvalue) = -1 then
      begin
        Application.MessageBox('对不起,您所要搜索的数据表中不存在这个字段','操作提示',MB_OK + MB_ICONINFORMATION);
        RS.Free;
        Exit;
      end;
      RS.Clear;
      Try
        with DataModuleFrm.LSB_ADOQuery do
        begin
          if Active then
            Active := False;
          SQL.Clear;
          SQL.Add('Select Distinct ' + Fieldvalue + ' from ' + Tablevalue);
          Open;
          if RecordCount = 0 then
            Exit;
          First;
        end;
        while Not DataModuleFrm.LSB_ADOQuery.Eof do
        begin
          RS.Add(DataModuleFrm.LSB_ADOQuery.FieldByName(Fieldvalue).AsString);
          DataModuleFrm.LSB_ADOQuery.Next;
        end;
      Except
        Application.MessageBox('对不起,数据操作错误','操作提示',MB_OK + MB_ICONINFORMATION);
        Exit;
      end;
      Result := RS;
    end;示例调用
    procedure TgjyclFrm.Shows;
    begin
      ISOComboBox.Items := PublicClass.DataComboBox('Jzclsy_Isowh','Isowh_rz');
      GcmcComboBox.Items := PublicClass.DataComboBox('jzclsy_gcmc','Gcmc_mc');
      wtdwComboBox.Items := PublicClass.DataComboBox('Jzclsy_wtdw','wtdw_mc');
      qyrComboBox.Items := PublicClass.DataComboBox('Jzclsy_qyrwh','Qyrwh_qyr');
      JzrComboBox.Items := PublicClass.DataComboBox('jzclsy_jzrwh','Jzrwh_jzr');
    end;公用的
      

  2.   

    Try
        with DataModuleFrm.LSB_ADOQuery do
        begin
          if Active then
            Active := False;
          SQL.Clear;
          SQL.Add('Select UserName  from  TableName');
          Open;
          if RecordCount = 0 then
            Exit;
          First;
        end;
        while Not DataModuleFrm.LSB_ADOQuery.Eof do
        begin
          RS.Add(DataModuleFrm.LSB_ADOQuery.FieldByName(UserName).AsString);
          DataModuleFrm.LSB_ADOQuery.Next;
        end;
      Except
        Application.MessageBox('对不起,数据操作错误','操作提示',MB_OK + MB_ICONINFORMATION);
        Exit;
      end;
      

  3.   

    循环
    var
     l_str:string;l_str := '';
    with Adoquery1 do
    begin
     close;
     SQL.text := 'select UserName from Users';
     open;
     while not eof do begin
      l_str := l_str + FieldByName('userName').AsString + ';';
      Next;
     end;
    end;