主管批评我的代码
with qryTmp do
begin
  Close;
  Sql.Clear;
  Sql.Add('Selcet * from a');
  Open;
  ...
  Close;
end;
说垃圾代码太多,应该用
with qryTmp do
begin
  Sql := 'Selcet * from a';
  Open;
  ...
  Close;
end;
我想问一下他的批评有道理吗?
我说很多教科书都是我这样的写法的,他说:什么书上这样写的?这样的书误人子弟。我看你好象没正规学习过。
这样的批评我应该接受吗?
我用DELPHI已经5年了,不知为何他总认为我只有1年的水平。居人篱下,郁闷。我该采取怎样的策略?

解决方案 »

  1.   

    close没有必要要,但clear应该要告诉他代码行数跟规范木有关系,同样的sql语句赋值,用好多种方法可以实行,我就认为
    s:='select * from a';
    sql.clear;
    sql.add(s);
    比sql.text:='select * from a'要规范,这是一个代码风格问题这种不牵扯效率和优化的批评只能说明你们主管◎¥#%¥◎#%2!@#$
      

  2.   

    另外我觉得open的时候应该try一下,或者整体try
      

  3.   

    我也习惯在open以前close一下,create Tstringlist以后clear一下的……
      

  4.   

    使用SQL.Add(''),可以加入较多行的SQL语句代码。使用Qry.SQL.text := '....',只能加入一句,如果SQL语句太长则可读性就比较差了。应该说各有各的用途,你的主管说的不正确。
    不要一棒子打死哦。
      

  5.   

    我研究了一下二者区别:
    //add 方法
    function TStrings.Add(const S: string): Integer;
    begin
      Result := GetCount;
      Insert(Result, S);
    end;
    //text := 方法
    property Text: string read GetTextStr write SetTextStr;

    procedure TStrings.SetTextStr(const Value: string);
    var
      P, Start: PChar;
      S: string;
    begin
      BeginUpdate;
      try
        Clear;
        P := Pointer(Value);
        if P <> nil then
          while P^ <> #0 do
          begin
            Start := P;
            while not (P^ in [#0, #10, #13]) do Inc(P);
            SetString(S, Start, P - Start);
            Add(S);
            if P^ = #13 then Inc(P);
            if P^ = #10 then Inc(P);
          end;
      finally
        EndUpdate;
      end;
    end;
    很明显,表面上后者代码行数少,其实应该是前者效率高。
    不知怎么和他沟通。
      

  6.   

    with qryTmp do
    begin
      Sql := 'Selcet * from a';
      Open;
      ...
      Close;
    end;
    少了CLEAR在某些情形下是会出问题的。
    呵~~,在编码风格中,最好是要保持一个好的初始化的习惯。
    其实个人风格只要是统一的就好了。
    感觉你主管没有容人之量。
      

  7.   

    呵,以前看过一本书,说OBJECT PASCAL中的WITH语句要尽量避免,这不是风格不风格的是,是可视化直观不直观。
      

  8.   

    每一个像这样写,的确代码太多。
    你写一个函数ExecSql,传Sql进去执行,
    bool res=ExecSql('Selcet * from a');
      

  9.   

    fanyufanyu(反语)说得很对,他批评我很多次关于在 例如注释、缩进、文档上的问题了,我觉得是要同他搞好关系,可他总是不愿意和下属帖进。大家可以教教我怎样和领导搞好关系?
      

  10.   

    如果这是一个按钮下面的click事件,他的代码只能点击一次,到点二次就错了
    而你的却是对的,所以你的主管欠骂
    if 你还要混下去 then
       kill 你的对手
    ELSE
       GO HOME
      

  11.   

    使用with會影响速度,
    一般不建議使用