Q&A

  • 변환작업중 왕에러가...
테이블1에 있는 각 필드의 내용을 테이블2에 copy나 move 시킬려구 하는데 자꾸 왕에러가나네요...소스는 이렇습니다... 어디가 잘못됐는지... 고수님들 보시고 꾸중해 주세용...^^

procedure TForm1.Button1Click(Sender: TObject);

begin

TBMember.Open;

TBStuMember.Open;

while TBMember.Eof do

begin

TBStuMember.Append;

TBStuMember.FieldByName('FDSICD').AsString := TBMember.FieldByName('FDSID').AsString;

TBStuMember.FieldByName('FDSPASSWORD').AsString := TBMember.FieldByName('FDSPASSWORD').AsString;

TBStuMember.FieldByName('FDSNAME').AsString := TBMember.FieldByName('FDSNAME').AsString;

TBStuMember.FieldByName('FDSEMAIL').AsString := TBMember.FieldByName('FDSEMAIL').AsString;

TBStuMember.FieldByName('FDSTEL').AsString := TBMember.FieldByName('FDSTEL').AsString;

TBStuMember.FieldByName('FDSSCHOOLNAME').AsString := TBMember.FieldByName('FDSCOM').AsString;

TBStuMember.FieldByName('FDIVISITCNT').AsInteger := TBMember.FieldByName('FDIVISITCNT').AsInteger;

TBStuMember.Post;

TBMember.Next;

end;

TBStuMember.Close;

TBmember.Close;

end;



정말 미치겠습니다... 이것때문인지 뭔지는 몰라도 run 시키기만 하면 application error가 나서 몇 번을 재부팅했는지 모릅니다...



고수님들 부탁 드립니다...



1  COMMENTS
  • Profile
    구창민 2000.05.19 05:31
    쥬니 wrote:

    > 테이블1에 있는 각 필드의 내용을 테이블2에 copy나 move 시킬려구 하는데 자꾸 왕에러가나네요...소스는 이렇습니다... 어디가 잘못됐는지... 고수님들 보시고 꾸중해 주세용...^^

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > TBMember.Open;

    > TBStuMember.Open;

    > while TBMember.Eof do

    > begin

    > TBStuMember.Append;

    > TBStuMember.FieldByName('FDSICD').AsString := TBMember.FieldByName('FDSID').AsString;

    > TBStuMember.FieldByName('FDSPASSWORD').AsString := TBMember.FieldByName('FDSPASSWORD').AsString;

    > TBStuMember.FieldByName('FDSNAME').AsString := TBMember.FieldByName('FDSNAME').AsString;

    > TBStuMember.FieldByName('FDSEMAIL').AsString := TBMember.FieldByName('FDSEMAIL').AsString;

    > TBStuMember.FieldByName('FDSTEL').AsString := TBMember.FieldByName('FDSTEL').AsString;

    > TBStuMember.FieldByName('FDSSCHOOLNAME').AsString := TBMember.FieldByName('FDSCOM').AsString;

    > TBStuMember.FieldByName('FDIVISITCNT').AsInteger := TBMember.FieldByName('FDIVISITCNT').AsInteger;

    > TBStuMember.Post;

    > TBMember.Next;

    > end;

    > TBStuMember.Close;

    > TBmember.Close;

    > end;

    >

    > 정말 미치겠습니다... 이것때문인지 뭔지는 몰라도 run 시키기만 하면 application error가 나서 몇 번을 재부팅했는지 모릅니다...

    >

    > 고수님들 부탁 드립니다...

    >





    안녕하세요~ 구창민입니다.



    제가 보기엔 Table 두개가 열렸다가 그냥 닫혀버릴거 같습니다만..



    문장이 아래처럼 구성 되어야 될거 같습니다.



    while not TBMember.Eof do

    begin

    ...

    //그리고 여기서 Post 하시지 마시고

    TBMember.Next;

    end;

    //이곳에서 Post 하세요 ^^;



    그리고, 첨언 드리면 테이블 두개의 구성이 같다면

    간단한 서브쿼리 문장 한방으로 위의 작업이 해결될 수 있습니다.



    insert into TableName{원본테이블명} (필드들))

    values( 'select (필드들) from TableName{타겟테이블명}) );



    이런.. 형태로 말입니다.



    그럼, 좋은 결과 있으시길 바라구요.



    즐거운 프로그래밍하시길~