Q&A

  • SQL상에서
안녕하세요
Table에 Field name이 M01, M02, M03 ... M31까지 있고요
다른 Table에서 읽은 날짜의 dd(yyyy-mm-dd)부문에
해당하는 Field에 값을 넣고 싶습니다.
즉, 읽은 날짜가 27일 이면 필드명이 M27이 되어
select, insert, update 를 하려고 합니다.
방법 좀 꼭 부탁드립니다.
제 능력이 아래 까지라서 죄송합니다.
<!--CodeS-->
While not Query1.EOF Do begin
  ProgressBar2.Position := ProgressBar2.Position + 1;
  aj := Copy(Query1.FieldByName('GDATE').AsString,9,2);
  Flnm := 'M'+aj;
  With Query2 do begin
       close;
       SQL.clear;
       SQL.add(' select * ');
       SQL.add(' From Yunilja ');
       SQL.add(' Where Sb = :Sb ');
       SQL.add(' And '''+Flnm+''' = :Mfl ');
       Query2.ParamByName('SB'  ).AsString :=   Query1.FieldByName'BCCODE' ).AsString;
       Query2.ParamByName('Mfl' ).AsFloat  := Query1.FieldByName('DB30AMT').AsFloat;
       Query2.Open;
       If Query2.RecordCount = 0 Then begin
          sql.clear;
          sql.add(' Insert  into Yunilja ');
          sql.add(' ( SB, NM, '''+Flnm+''' ) ');
          sql.add(' values ( :SB, :NM, :Mfl     ) ');
       end Else begin
          sql.add(' Update Yunilja Set ');
          sql.add(' SB = :SB, NM = :NM, '''+Flnm+''' = :Mfl ');
          Sql.Add(' Where SB = :SB    ');
          SQL.add(' And '''+Flnm+''' = :Mfl ');
       end;
       Query2.ParamByName('SB'  ).AsString  := '';
       Query2.ParamByName('NM'  ).AsString  := '';
       Query2.ParamByName('Mfl' ).AsFloat   := 9999;
       Query2.ExecSql;
  end;
  Query1.Next;
end;
<!--CodeE-->
2  COMMENTS
  • Profile
    이영주 2006.05.27 12:06

      SQL.add(' And '''+Flnm+''' = :Mfl ');
    -> SQL.add(' And '+Flnm+' = :Mfl ');
  • Profile
    김현학 2006.05.29 22:54

    이영주님
    정말 감사합니다.
    무어라 감사의
    말씀을 올려 할지
    정말 감사합니다.
    하시는 일마다
    건승하시길
    수고하세요