먼저 김영대님과 어린왕자님께 깊은 감사들 드립니다.
두분 말씀대로 OK Button의 Default 값을 False로 하고
Modal을 mrNone, mrYes등을 해 보았는데 다음과 같은 결과가 나옴니다.
결과
1. 창은 안닫히는데 입력된 데이타가 한번 이상 DB에 저장이 안되고
2. 창을 닫고 다시 입력하면 역시 한번 만 저장되고
3. 저장된 1개의 항목은 수정, 삭제가 안됩니다.
저의 생각은 창은 임의로 닫을 수 있는 버턴이 있고
창을 닫기 전까지는 계속해서 db에 저장할 수 있도록 되어야 하는데 잘 안되네요..
그래서 참고로 소스를 적어놓았어요..
아직 초보라 소스코드가 고수님들의 눈을 어지럽힌점을 깊히 사과드리옵나이다.
고수님들의 명쾌한 가르치심을 기다리겠나이다.
파라독스 db사용
// 데이타 등록하는 이벤트 Procedure
procedure TForm1.N8Click(Sender: TObject);
var
CurDate : TDateTime;
Year, Month, Day, Hour, Min, Sec, MSec: Word;
StrID : string;
begin
CurDate := Now;
DecodeDate(CurDate, Year, Month, Day);
DecodeTime(CurDate, Hour, Min, Sec, MSec);
StrID := IntToStr(Year) + IntToStr(Month) + IntToStr(Day) +
IntToStr(Hour) + IntToStr(Min) + IntToStr(Sec);
Table1.Open;
Table1.Append;
if Form3.ShowModal = mrOK then
begin
if Form1.Table1.FieldByName('SuperNo').AsString ='' then
showmessage('관리번호를 입력 하세요')
else begin
Table1.FieldByName('id').asstring := StrID
end;
end;
end;
// 등록된 이력을 삭제하는 이벤트 Procedure
procedure TForm1.N9Click(Sender: TObject);
begin
if Form1.Table1.FieldByName('Id').Asstring = '' then exit;
if MessageDlg('확실합니까?',mtConfirmation, mbOKCanCel, 0) = mrOK then
begin
Table1.Open;
Table1.Delete;
Table1.Close;
Table1.Open;
end;
end;
// 등록된 이력을 수정하는 이벤트Procedure
procedure TForm1.N10Click(Sender: TObject);
begin
if form1.Table1.FieldByName('Id').Asstring ='' then exit;
Table1.Open;
Table1.Edit;
if form3.ShowModal = mrOK then begin
Table1.post;
end;
Table1.Close;
Table1.Open;
end;
컴맹입니다.
Source를 보니..
Append 문후에 Post 를 해주시지 않은것 같네여...
TTable의 Insert,Append,Edit문은
Insert
.....// 구문
post
를 하셔야 합니다.
그리구 입력할때마다.. 오픈을 하게 되어 있는데..
별로 좋은방법은 아니네여...
그럴거면 차라리 쿼리를 쓰는게...
이만 줄이 겠습니다.
델왕초보 wrote:
> 먼저 김영대님과 어린왕자님께 깊은 감사들 드립니다.
>
> 두분 말씀대로 OK Button의 Default 값을 False로 하고
>
> Modal을 mrNone, mrYes등을 해 보았는데 다음과 같은 결과가 나옴니다.
>
> 결과
> 1. 창은 안닫히는데 입력된 데이타가 한번 이상 DB에 저장이 안되고
> 2. 창을 닫고 다시 입력하면 역시 한번 만 저장되고
> 3. 저장된 1개의 항목은 수정, 삭제가 안됩니다.
>
> 저의 생각은 창은 임의로 닫을 수 있는 버턴이 있고
> 창을 닫기 전까지는 계속해서 db에 저장할 수 있도록 되어야 하는데 잘 안되네요..
>
> 그래서 참고로 소스를 적어놓았어요..
> 아직 초보라 소스코드가 고수님들의 눈을 어지럽힌점을 깊히 사과드리옵나이다.
> 고수님들의 명쾌한 가르치심을 기다리겠나이다.
>
> 파라독스 db사용
>
>
> // 데이타 등록하는 이벤트 Procedure
> procedure TForm1.N8Click(Sender: TObject);
> var
> CurDate : TDateTime;
> Year, Month, Day, Hour, Min, Sec, MSec: Word;
> StrID : string;
>
> begin
> CurDate := Now;
> DecodeDate(CurDate, Year, Month, Day);
> DecodeTime(CurDate, Hour, Min, Sec, MSec);
> StrID := IntToStr(Year) + IntToStr(Month) + IntToStr(Day) +
> IntToStr(Hour) + IntToStr(Min) + IntToStr(Sec);
> Table1.Open;
> Table1.Append;
>
> if Form3.ShowModal = mrOK then
> begin
> if Form1.Table1.FieldByName('SuperNo').AsString ='' then
> showmessage('관리번호를 입력 하세요')
>
> else begin
> Table1.FieldByName('id').asstring := StrID
>
> end;
> end;
> end;
>
> // 등록된 이력을 삭제하는 이벤트 Procedure
> procedure TForm1.N9Click(Sender: TObject);
> begin
> if Form1.Table1.FieldByName('Id').Asstring = '' then exit;
>
> if MessageDlg('확실합니까?',mtConfirmation, mbOKCanCel, 0) = mrOK then
> begin
> Table1.Open;
> Table1.Delete;
> Table1.Close;
> Table1.Open;
> end;
> end;
>
> // 등록된 이력을 수정하는 이벤트Procedure
> procedure TForm1.N10Click(Sender: TObject);
> begin
> if form1.Table1.FieldByName('Id').Asstring ='' then exit;
> Table1.Open;
> Table1.Edit;
> if form3.ShowModal = mrOK then begin
> Table1.post;
> end;
> Table1.Close;
> Table1.Open;
>
> end;
>
>