Q&A

  • 저장이 안돼요
저장이 안됩니다



저장 후 DBGRID로보면 있는데



프로그램을 종료한 후 다시 들어와 DBGRID로 보면 없어요



네비게이터로 봐도 없고요



저장이 안됐다는 이야기 인가요 ?



그러면 왜 종료하기 전에는 보이죠 ?



DB는 PARADOX를 사용하고요 소스는 다음과 같습니다



답변해주시면 고맙겠습니다.



procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Panel1.Caption := ' 자료를 신규입력합니다.';

if datasource1.state <> dsinsert then

table1.edit;

table1.post;

dbedit1.setfocus;

table1.append;

end;



.

.

.

.

.

. 마지막 DBEDIT입니다

procedure TForm1.DBEdit25KeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then

perform(WM_NEXTDLGCTL,0,0); //Enter시 다음 (Tab과 동일)

if key=#27 then begin

perform(WM_NEXTDLGCTL,1,0); //Enter시 다음 (Tab과 동일)

table1.post;

end;

end;



.

.

.

.

.

.



별도 저장버튼입니다.

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

if datasource1.state <> dsinsert then

table1.edit;

table1.post;

Panel1.Caption := ' 자료를 저장하였습니다.';

end;







1  COMMENTS
  • Profile
    이재식 1999.09.12 06:04
    로직이 잘못됐습니다.

    귀하께서 입력과 수정을 동시에 생각하는 루틴입니까?,

    아니면 입력만을 생각한 루틴입니까?

    잘 모르겠지만 입력과 수정을 위한 명령어가 잘못됐습니다.

    입력을 하는 경우와 수정을 하는 경우를 분명히 구분해야 되요.

    입력버튼 클리시 : if Table1.state = dsBrows then

    Table1.Append ;

    그럼 사용자는 새로이 데이터를 추가하기 위해서

    에디터 박스에 데이터를 입력하겠죠.

    그런다음 사용자는 저장버튼을 클릭하겠죠.

    저장버튼 클릭시 : if Table1.state = dsInsert then

    Table1.Post ;



    즉 bitbtn2이벤트에서 테이블이 입력모드가 아니면

    Table1.Edit가 아니라 Table1.Append라고 해야됩니다.

    아래에 있는 Table1.Append명령이 없어야 하고요.

    그런데 사용자가 수정을 한다고 가정하면

    그것을 위한 명령어는 따로 필요없어요.

    이유는 DBEdit를 쓰기때문에 수정을 하면 내부적으로 판단해요.

    따라서, 저장버튼의 이벤트를 확장해보면

    if (Table1.state = dsInsert) or (Table1.state = dsEdit) then

    Table1.Post ;

    이렇게 하면 되요.

    Table1.Edit명령어는 위의 경우(DBEdit)에 해당사항이 안됩니다.

    자세한것은 메일을 주시면 답해드리죠.



    • ysol
    • 1999.09.13 09:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • jinifan
      1999.09.13 11:54
      안녕 하세요? 지니팬입니다. 여기 BMP구조와 예제 하나 써넣을께요... BMP 구조는 강의실에서 이정욱님...
    • 이재식
      1999.09.13 19:38
      잘 보았습니다. 대충 무슨이야기인지는 알겠는데, 여전히 의구심만 나는 글이네요. 저에게 한번 소스를 ...
    • 김영애
    • 1999.09.13 05:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 권경부
      1999.09.13 09:39
      김영애 wrote: > 안녕하세요!! > 지금 어떤 프로그램(?)을 하고 있는데요... > > 전화번호 필드를 mas...
    • 박홍석
      1999.09.13 08:17
      김영애 wrote: > 안녕하세요!! > 지금 어떤 프로그램(?)을 하고 있는데요... > > 전화번호 필드를 mas...
    • 김지엽
    • 1999.09.13 05:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 돌팔이
      1999.09.15 05:39
      김지엽 wrote: > 늘 질문만 올려서 죄송하기 그지 없는 델파이 초보입니다. > (저도 왠만큼 배우고 나면...
    • 임성룡
    • 1999.09.12 08:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 문승진
      1999.09.13 23:34
      임성룡 wrote: > 1. dbgrid에서 post를 하고 다운이 되어도 세이브가 되는게 > dbisavechanges(table1...
    • 신인재
      1999.09.13 00:57
      임성룡 wrote: > 1. dbgrid에서 post를 하고 다운이 되어도 세이브가 되는게 > dbisavechanges(table1...
    • Lyle
    • 1999.09.12 05:53
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.09.12 10:03
      도움이 될지는 모르겠으나... 일단은 이렇게 하면 되지 않을까 합니다. (99.9% 이론상으로.... -.-;;) ...
    • Lyle
      1999.09.12 10:49
      안치봉 께서 말씀하시기를... > 도움이 될지는 모르겠으나... 일단은 이렇게 하면 되지 않을까 합니다. >...
    • 안치봉
      1999.09.12 18:23
      궁극적으로 무엇을 구현할려고 하시려는지 잘은 모르겠으나....-.-;; 간단히 숫자의 위치를 바꾼다고 숫...
    • 지영근
      1999.09.12 05:50
      HUNIGA 께서 말씀하시기를... > 데이타베이스에 저장된 날짜필드와 MASKEDIT에 입력한 값을 비교하여 > ...
    • 경동욱
    • 1999.09.12 04:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.09.13 17:24
      경동욱 wrote: > 안녕하세요 > FTP server 프로그램을 만들려고 하는데 > server 와 client 간의 접속...
    • 강성만
    • 1999.09.12 02:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 문성준
      1999.09.13 22:19
      강성만 wrote: > 안녕하세요 > MS-SQL7.0과 델파이4.0을 사용 중입니다. > 인스톨 쉴드를 만들어서 프로...
    • 이정욱
      1999.09.13 12:22
      혹시 Alias 설정을 하지 않으신것 아닌지 모르겠네요. 드라이버들은 설치 되었어도 알리아스가 없어서 DB...
    • 노상균
    • 1999.09.12 02:15
    • 1 COMMENTS
    • /
    • 1 LIKES
    • 이재식
      1999.09.12 06:04
      로직이 잘못됐습니다. 귀하께서 입력과 수정을 동시에 생각하는 루틴입니까?, 아니면 입력만을 생각한 루...
    • 이우영
    • 1999.09.12 00:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.09.13 17:28
      안녕하세요 이우영님... 제가 저번주 내내 휴가여서 이제야 글을 보았습니다 제 홈페이지의 "NT 프로세...
    • 홍효선
    • 1999.09.11 20:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.09.12 10:10
      너무질문이 막현합니다. 좀더 자세히 써주시면 좀더 명쾌한 답변이 있을것 같지 않습니까?. -.-;;(적어도 ...
    • 이재식
      1999.09.11 21:41
      그건 당연합니다. 이유는 char타입의 특성때문에 그래요. 즉, char(8)인데 막상 데이터는 aaa이면 델파...
    • jerry
    • 1999.09.11 20:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 지영근
      1999.09.11 21:09
      jerry 께서 말씀하시기를... > 레코드를 삽입할때 마다 그 뒤에 있는 레코드의 일련번호들이 하나씩 증가 ...
    • 홍순용
      1999.09.13 21:45
      김지혜 wrote: > 델파이 초보입니다. 레코드는 하나씩 없어지긴하는데 모든 레코드를 한꺼번에 없애는 방...
    • 지영근
      1999.09.11 20:55
      김지혜 께서 말씀하시기를... > 델파이 초보입니다. 레코드는 하나씩 없어지긴하는데 모든 레코드를 한꺼...
    • 김영대
      1999.09.13 17:30
      최은석 wrote: > 디비그리드에 메모필드를 가진 테이블을 연결했는데 > 그리드에 있는 메모필드의 내용을...