Q&A

  • 스트링그리드(stringgrid)에 있는 내용을 DB에 insert 어떻게 하나요? [긴급
스트링그리드에 있는 내용을 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;



이렇게 했는데 타입 어쩌구 저쩌구 하면서 에러가 납니다.

꼭 좀 부탁드립니다.

1  COMMENTS
  • Profile
    이원택 2001.09.27 18:13
    박원진 wrote:

    > 스트링그리드에 있는 내용을 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 을 확인해 보세요