안녕하세요.
첨으로 ParamByName을 사용하여 데이터베이스에 데이터를 삽입하는 프로그램을 만들엇ㅆ습니다. (다음과 같이)
for introw:=1 to stringgrid1.RowCount do
begin
q1.sql.Clear;
q1.sql.Add('insert into ia3710t0 (fcode,jcode,date,gcode,mmcode,seq,surang,chamt,pgamt,sonik,in_sise,bef_surang,bef_chamt,bef_pgamt)');
q1.sql.Add(' values(:k001,:k002,:k003,:k004,:k005,:k006,:k007,:k008,:k009,:k010,:k011,:k012,:k013,:k014)');
q1.ParamByName('k001').asstring:=stringgrid1.Cells[1,introw]; // fcode
q1.ParamByName('k002').asstring:=stringgrid1.Cells[2,introw]; // jcode
q1.ParamByName('k003').asstring:=stringgrid1.Cells[3,introw]; // date
q1.ParamByName('k004').asfloat :=strtofloat(stringgrid1.Cells[4,introw]); // gcode
q1.ParamByName('k005').asfloat :=strtofloat(stringgrid1.Cells[5,introw]); // mmcode
q1.ParamByName('k006').asfloat :=strtofloat(stringgrid1.Cells[6,introw]); // seq
q1.ParamByName('k007').asfloat :=strtofloat(stringgrid1.Cells[7,introw]); // surang
q1.ParamByName('k008').asfloat :=strtofloat(stringgrid1.Cells[8,introw]); // chamt
q1.ParamByName('k009').asfloat :=strtofloat(stringgrid1.Cells[9,introw]); // pgamt
q1.ParamByName('k010').asfloat :=strtofloat(stringgrid1.Cells[10,introw]); // sonik
q1.ParamByName('k011').asfloat :=strtofloat(stringgrid1.Cells[11,introw]); // in_sise
q1.ParamByName('k012').asfloat :=strtofloat(stringgrid1.Cells[12,introw]); // bef_surang
q1.ParamByName('k013').asfloat :=strtofloat(stringgrid1.Cells[13,introw]); // bef_chamt
q1.ParamByName('k014').asfloat :=strtofloat(stringgrid1.Cells[14,introw]); // bef_pgamt
q1.execsql;
end;
그런데 문제가 생겨 sql값을 찾아보니 다음과 같이 돼버렸습니다.
'insert into ia3710t0 (fcode,jcode,date,gcode,mmcode,seq,surang,chamt,pgamt,sonik,in_sise,bef_surang,bef_chamt,bef_pgamt)'#$D#$A' values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)'#$D#$A
왜 값이 안들어가고 '?' 으로 표시되는지...?
그리고 '#$D#$A'가 무슨 문자이길래 들어갔는지 ...?
sql문이 이렇게 되는 바람에 insert쿼리가 안되는 것 같은데 알려주세요.
미리 감사드립니다.