우선 제가 델파이는 상당한 초급자임을 먼저 감안해 주세요~.~
제가 궁금한 것은 어떤 엑셀자료를 DBGrid가 아닌 StringGrid에 뿌렸습니다.
그런 후 StringGrid의 자료를 저장버튼을 클릭하면 원격지 오라클 DB의 특정
테이블에 insert 하려고 합니다.
어떻게 해야 하나요?
가능한한 구체적으로 설명을 해주시면 감사하겠습니다.
책을 찾아봐도 그런 내용은 잘 못 찾겠더라구요...
너무 초보적인 문제라서 그런지~~
가르침을 주세요..
아래는 제가 만든 코드입니다.
procedure TForm1.Button2Click(Sender: TObject);
var
Row : integer;
begin
try
if MessageDlg('추가하시겠습니까?', mtwarning,[mbYes, mbNo], 0) = mrYes then begin
For Row := 1 to StringGrid1.RowCount-1 do begin
with Query1 do
begin
SQL.Clear;
sql.BeginUpdate;
sql.Add('Insert into Addr(no, zip1, zip2, Addr1, Add2, Dong)');
sql.Add('values (:no, :zip1, :zip2, :Addr1, :Add2, :Dong)');
sql.EndUpdate;
parambyname('no').asinteger := strtoint(stringgrid1.Cells[0, Row]);
parambyname('zip1').asstring := stringgrid1.Cells[1, Row];
parambyname('zip2').asstring := stringgrid1.Cells[2, Row];
parambyname('Addr1').asstring := stringgrid1.Cells[3, Row];
parambyname('Add2').asstring := stringgrid1.Cells[4, Row];
parambyname('Dong').asstring := stringgrid1.Cells[5, Row];
Prepare;
Query1.OpenDatabase;
EXecSQL;
end; // with end
end; // For end
Query1.Close;
Query1.SQL.Clear;
showmessage('성공!!');
end; // if end
showmessage('취소하셨습니다.!!');
except
showmessage('추가할 수 없습니다.');
end;
end;
오라클클라이언트 설치되어있고 DbGrid로 데이타 가져오는건 잘 됩니다.
그런데 위 방식으로 하면 에러가 나는군요
<!--CodeS-->
try
if MessageDlg('추가하시겠습니까?', mtwarning,[mbYes, mbNo], 0) = mrYes then begin
with Query1 do begin
SQL.Clear;
sql.Add('Insert into Addr(no, zip1, zip2, Addr1, Add2, Dong)');
sql.Add('values (:no, :zip1, :zip2, :Addr1, :Add2, :Dong)');
end;
Query1.Prepare;
For Row := 1 to StringGrid1.RowCount-1 do begin
with Query1 do begin
parambyname('no').asinteger := strtoint(stringgrid1.Cells[0, Row]);
parambyname('zip1').asstring := stringgrid1.Cells[1, Row];
parambyname('zip2').asstring := stringgrid1.Cells[2, Row];
parambyname('Addr1').asstring := stringgrid1.Cells[3, Row];
parambyname('Add2').asstring := stringgrid1.Cells[4, Row];
parambyname('Dong').asstring := stringgrid1.Cells[5, Row];
EXecSQL;
end;
end;
Query1.UnPrepare;
showmessage('성공!!');
end
else
showmessage('취소하셨습니다.!!');
except
showmessage('추가할 수 없습니다.');
end;
<!--CodeE-->