음..어떤데이터를 하나씩 insert하려고 하는데..무결성 에러가 발생합니다.
일단 소스부터 올리겠습니다.
************
procedure TForm1.Button1Click(Sender: TObject);
var stype, scharge, sbsnum, sbsname, sbstype, sbskind, smoney, svat, spayid, sseq : string;
iseq, imoney, ivat : integer;
begin
iseq := table1.RecordCount + 1;
scharge := edit2.Text;
sbsnum := edit3.Text;
sbsname := edit4.Text;
sbstype := edit5.Text;
sbskind := edit6.Text;
smoney := edit7.Text;
svat := edit8.Text;
spayid := edit9.Text;
sseq := inttostr(iseq);
imoney := strtoint(smoney);
ivat := strtoint(svat);
if combobox1.Text = '1.매출' then
stype := '1'
else
stype := '2';
query1.Active := true;
query1.sql.Clear;
Query1.SQL.text := ' insert into budget '
+ ' values (''' + stype + ''',''' + scharge + ''',' + sseq + ', ''' + sbsnum
+ ''', ''' + sbsname + ''', ''' + sbstype + ''', ''' + sbskind + ''','
+ smoney + ',' + svat + ',''' + spayid + ''')';
Query1.ExecSQL;
table1.Refresh;
end;
************************************
지금 코딩을 하는 과정이라 정리가 안되서, 쓸모없는 변수도 많이 들어가 있구 보기가 좀 지저분 할지도 모르겠습니다..^^;;
근데...윗부분에서 테이블 내에 하나의 필드(seq)를 주어 레코드의 번호를 주려고 했는데...자꾸 무결성에러가 뜨네요..처음 데이터는 입력이 되고 바로 이어서 다른데이터를 입력하면 에러가 뜹니다.폼을 아예 닫았다가 하면 또 입력이 되네요..처음것만...ㅡ.ㅡ;
즉 정리하자면 폼을 열고 첫 데이터는 입력이 되고 그담에는 무결성에 걸리는거 같습니다.
Database는 오라9i 이고, seq필드는 프라이머리키 입니다....
조언좀 부탁드리겠습니다...도저히 잘 모르겠네요..ㅜ.ㅜ
====================================
오라클이라면 트랜젝션 처리는 하셨는지요.
with DataBase,Query do begin
try
StartTransaction;
Sql.Clear;
Sql.Add(..........);
ExecSQL;
Commit
except
RollBack;
end;
end;
이런 식으로요.