지금 제가 회사에서 사용할 프로그램을 하나 짜고 있는데요,,,,
서버는 IBM AS/400이고 DB는 DB2입니다.
이걸 델파이에서 만든 화면을 통해 DB2에 입력하고자 합니다.
물론 ODBC는 연결해 놓았구요...
근데 이걸 실행하고 싶은데요,, 보통 INSERT나 UPDATE할때 쿼리문 젤 끝에 EXEXSQL을 쓰잖아요,,,
select 할때는 open이구요...
근데 제가 만든 쿼리에서는 EXECSQL부분에서 에러가 나거든요,,
혹시 DB2에 INSERT할 경우에 EXECSQL을 사용하지 않고 다른 명령어로 실행을 시키나요?
제가 만든 쿼리도 올립니다.
Showmessage는 어디서 에러가 나는지 볼려고 해서 썼어요,,,완전 노가다 초짜쬬..?
실행을 해 보니 21번이 나타나고 에러가 뜨거든요,,,그럼 그 담 문장인 EXECSQL에서 에러가 나는 거잖아요....좀 도와주세요,,,
EX) with Query3 do
begin
Close;
Sql.Clear;
Sql.Add(' INSERT INTO MKFLIB.CMCMMS ');
Sql.Add(' Values ( :CMDLKB, ');
Sql.Add(' :CMKUCD, ');
Sql.Add(' :CMCODE, ');
Sql.Add(' :CMSQNO, ');
Sql.Add(' :CMNAME, ');
Sql.Add(' :CMSDAY, ');
Sql.Add(' :CMEDAY, ');
Sql.Add(' :CMBMCD, ');
Sql.Add(' :CMSHCD, ');
Sql.Add(' :CMSCCD, ');
Sql.Add(' :CMSHNM, ');
Sql.Add(' :CMSQTY, ');
Sql.Add(' :CMMAKE, ');
Sql.Add(' :CMAMT, ');
Sql.Add(' :CMIPDT, ');
Sql.Add(' :CMUPDT, ');
Sql.Add(' :CMFLA1, ');
Sql.Add(' :CMFLA2, ');
Sql.Add(' :CMFLA3, ');
Sql.Add(' :CMFLA4, ');
Sql.Add(' :CMFLA5 ');
ParamByName('CMDLKB').AsString := ' ';
showmessage('1');
ParamByName('CMKUCD').AsInteger := 001;
showmessage('2');
ParamByName('CMCODE').AsString := Edit1.Text;
showmessage('3');
ParamByName('CMSQNO').AsInteger := 1;
showmessage('4');
ParamByName('CMNAME').AsString := Edit2.text;
showmessage('5');
ParamByName('CMSDAY').AsInteger := StrToInt(Edit6.Text);
showmessage('6');
ParamByName('CMEDAY').AsInteger := StrToInt(Edit7.Text);
showmessage('7');
ParamByName('CMBMCD').AsInteger := Query1.FieldByName('GBBMCD').AsInteger;
showmessage('8');
ParamByName('CMSHCD').AsInteger := Query1.FieldByName('GBSHCD').AsInteger;
showmessage('9');
ParamByName('CMSCCD').AsString := Edit3.Text;
showmessage('10');
ParamByName('CMSHNM').AsString := Query1.FieldByName('GBSHN2').AsString;
showmessage('11');
ParamByName('CMSQTY').AsInteger := StrToInt(Edit4.Text);
showmessage('12');
ParamByName('CMMAKE').AsString := Copy(Edit3.Text,1,7);
showmessage('13');
ParamByName('CMAMT').AsInteger := StrToInt(Edit5.Text);
showmessage('14');
ParamByName('CMIPDT').AsInteger := StrToInt(UndateText(DateToStr(Date)));
showmessage('15');
ParamByName('CMUPDT').AsInteger := StrToInt(UndateText(DateToStr(Date)));
showmessage('16');
ParamByName('CMFLA1').AsString := '';
showmessage('17');
ParamByName('CMFLA2').AsInteger := 0;
showmessage('18');
ParamByName('CMFLA3').AsString := '';
showmessage('19');
ParamByName('CMFLA4').AsInteger := 0;
showmessage('20');
ParamByName('CMFLA5').AsInteger := 0;
showmessage('21');
ExecSql;
End;
Query6.open;
Exit;
end;