스트링그리드에 있는 내용을 DB에 어떻게 Insert 하는건가요?
계속 타입이 틀리다면서 에러가 납니다.. 좀 부탁좀 드립니다.
참고로 델파이2.0 이구요 오라클 7점대 버전입니다.
with qry_insert do begin
SQL.BeginUpdate;
SQL.clear;
SQL.Add(' INSERT INTO OR_ORD1S ' );
SQL.Add(' ( ord_no, db_code, good_code, ord_kind, ord_qty, ');
SQL.Add(' ord_chulqty, dano_mv, dano_hp ) ');
SQL.Add(' VALUES ( :ord_no, :db_code, :good_code, :ord_kind, :ord_qty, ');
SQL.Add(' :ord_chulqty, :dand_mv, :dano_hp ) ');
SQL.EndUpdate;
For Row_Cnt:= 1 to StringGrid1.RowCount do begin
ParamByName('ord_no').AsString := Canno_Auto;
ParamByName('db_code').AsString := MaskEdit4.Text;
aramByName('good_code').AsString := StringGrid1.Cells1,Row_Cnt];
ParamByName('ord_kind').AsString := '9';
'-- 요기 미테 부터 에러가 납니다.
ParamByName('ord_qty').AsInteger := StrtoInt(StringGrid1.Cells5,Row_Cnt]);
ParamByName('ord_chulqty').AsInteger := StrToInt(StringGrid1.Cells6,Row_Cnt]);
ParamByName('dano_mv').AsInteger := StrToInt(StringGrid1.Cells3,Row_Cnt]);
ParamByName('dano_hp').AsInteger := StrToInt(StringGrid1.Cells4,Row_Cnt]);
StringGrid1.RowCount := StringGrid1.RowCount + 1;
EXecSQL;
이렇게 했는데 타입 어쩌구 저쩌구 하면서 에러가 납니다.
꼭 좀 부탁드립니다.
> 스트링그리드에 있는 내용을 DB에 어떻게 Insert 하는건가요?
> 계속 타입이 틀리다면서 에러가 납니다.. 좀 부탁좀 드립니다.
>
> 참고로 델파이2.0 이구요 오라클 7점대 버전입니다.
>
> with qry_insert do begin
> SQL.BeginUpdate;
> SQL.clear;
> SQL.Add(' INSERT INTO OR_ORD1S ' );
> SQL.Add(' ( ord_no, db_code, good_code, ord_kind, ord_qty, ');
> SQL.Add(' ord_chulqty, dano_mv, dano_hp ) ');
> SQL.Add(' VALUES ( :ord_no, :db_code, :good_code, :ord_kind, :ord_qty, ');
> SQL.Add(' :ord_chulqty, :dand_mv, :dano_hp ) ');
> SQL.EndUpdate;
>
> For Row_Cnt:= 1 to StringGrid1.RowCount do begin
> ParamByName('ord_no').AsString := Canno_Auto;
> ParamByName('db_code').AsString := MaskEdit4.Text;
> aramByName('good_code').AsString := StringGrid1.Cells1,Row_Cnt];
> ParamByName('ord_kind').AsString := '9';
>
> '-- 요기 미테 부터 에러가 납니다.
> ParamByName('ord_qty').AsInteger := StrtoInt(StringGrid1.Cells5,Row_Cnt]);
> ParamByName('ord_chulqty').AsInteger := StrToInt(StringGrid1.Cells6,Row_Cnt]);
> ParamByName('dano_mv').AsInteger := StrToInt(StringGrid1.Cells3,Row_Cnt]);
> ParamByName('dano_hp').AsInteger := StrToInt(StringGrid1.Cells4,Row_Cnt]);
> StringGrid1.RowCount := StringGrid1.RowCount + 1;
> EXecSQL;
>
> 이렇게 했는데 타입 어쩌구 저쩌구 하면서 에러가 납니다.
> 꼭 좀 부탁드립니다.
답변 / 물음===============================================
그런데 코딩한 내용이 StrToInt(StringGrid1.Cells4,Row_Cnt]); 가 맞나요?
만약 맞다면 StrToInt(StringGrid1.Cells[4,Row_Cnt]); 처럼 "4" 앞에 "["를
붙여야 하는게 아닌가요?
그렇지 않으면 Oracle DB 의 Table Field Type 을 확인해 보세요