파라독스 DB를 adoQuery 로 연결해서 Insert Into 시키려는데 자꾸 에러가 나네요.. 쩝..
왜 이럴까요?
좀 봐주세요.. ㅠ.ㅠ.
<!--CodeS-->
with Query1 do begin
Close;
Sql.Clear;
Sql.Text := ' Insert Into eTaxT ' +
' ( JunpIl, JunpNo, JunpSeq, ChCode, Taxil, TaxNo, TNo, Memo, Seq, GKum, VKum, TKum, ' +
' TaxD, TaxTel, TaxHP, TaxEmail, IN_Date, IN_Id )' +
' Values ' +
' ( :JunpIl, :JunpNo, :JunpSeq, :ChCode, :Taxil, :TaxNo, :TNo, :Memo, :Seq, :GKum, :VKum, :TKum, ' +
' :TaxD, :TaxTel, :TaxHP, :TaxEmail, :IN_Date, :IN_Id ) ';
Parameters.ParamByName('JunpIl').Value := edtF01.Text+edtF02.Text+edtF03.Text;
Parameters.ParamByName('JunpNo').Value := edtF04.Text;
Parameters.ParamByName('JunpSeq').Value := Cells[0, aRow];
Parameters.ParamByName('ChCode').Value := Cells[1, aRow];
Parameters.ParamByName('Taxil').Value := Copy(Cells[3, aRow],1,6);
Parameters.ParamByName('TaxNo').Value := Copy(Cells[3, aRow],8,4);
Parameters.ParamByName('TNo').Value := Copy(Cells[3, aRow],1,6)+Copy(Cells[3, aRow],8,4);
Parameters.ParamByName('Memo').Value := Cells[4, aRow];
Parameters.ParamByName('Seq').Value := Cells[20, aRow];
Parameters.ParamByName('GKum').Value := DoubleCells[5, aRow];
Parameters.ParamByName('VKum').Value := DoubleCells[6, aRow];
Parameters.ParamByName('TKum').Value := DoubleCells[7, aRow];
Parameters.ParamByName('TaxD').Value := Cells[9, aRow];
Parameters.ParamByName('TaxTel').Value := Cells[10, aRow];
Parameters.ParamByName('TaxHP').Value := Cells[18, aRow];
Parameters.ParamByName('TaxEmail').Value := Cells[19, aRow];
Parameters.ParamByName('IN_Date').Value := vfgtoday+copy(vfgtotime,1,4);
Parameters.ParamByName('IN_Id').Value := vfgexecUser(fDbName);
Execsql;
end;
<!--CodeE-->
SQL문을 코딩할때는 가급적.. 파라메터를 쓰는 것보다.. 해당 값을 직접 대이해주는 것이 부득이한 ERROR의 발생을 줄일수 있고..
또 위와 같이 각각의 필드와 대입되는 값을 일렬로 나열하는 것 보다..
SQL.Text :=
' INSERT INTO TABLE_A (
' NO,
' NAME,
' ADDRESS ) VALUES (
' '+ txtNO.Text +', '+#13+
' '''+ txtNAME.Text +''', '+#13+
' '''+ txtADDRESS.Text +''') '+#13;
방식으로 코딩을 해주시는 게 나중에 디버깅하기에도 후임이 유지보수 하기에도 좋습니다.