안녕하세요
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-->
SQL.add(' And '''+Flnm+''' = :Mfl ');
-> SQL.add(' And '+Flnm+' = :Mfl ');