Q&A

  • 레코드 INSERT 가 잘안됩니다..ㅠㅠ..
예) Table1.에 레코드가 30개가 있다면

12번째 줄에 레코드 2개를 강제로 INSERT 하려고 합니다.

procedure TTongjangFm.TjinsertExecute(Sender: TObject);

begin

Table1.MoveBy(12);

Table1.insert;

Table1.FieldByName('Section').AsString := '24';

Table1.MoveBy(13);

Table1.insert;

Table1.FieldByName('Section').AsString := '24';

end;

으로 넣었는데 12번째로 안들어가고 맨 마지막에 두줄이 추가 됩니다.

정확히 12,13번째로 넝는방법이 없을까요?

어떻게 해야되는지 궁금합니다. 고수님의 한 수 부탁헙니다.





3  COMMENTS
  • Profile
    임형호 2000.10.23 04:05
    음... 12번째 줄하고 13번째 줄이라면...

    우선

    table1.first를 해주어야할것 같습니다.

    moveby는 제가 알기로는 기준점에서 moveby(몇칸) 이거든요.

    그러니가...12번째에 입력하라고 했을때...기준은 첨부터 12번째이겠죠?

    먼저 table1.first를 해야할것 같습니다. 우연히 첫번째 레코드에 위치해있다면 모를까...

    그러므로 그다음 moveby(13)도 현재 기준에서 13번재가 되니까..의도하신 위치가 안될것 같은데요.

    즉 만약 현재 레코드 위치가 첨이라는 가정하에..12번째에 입력된후 그 위치에서 13번째가 되니까..... 20여번째가 될것 같네요.

    델파이가 없어서 정확한지는 확실치는 않지만...기억상으로는...

    그럼..즐프하세요.





    김명호 wrote:

    > 예) Table1.에 레코드가 30개가 있다면

    > 12번째 줄에 레코드 2개를 강제로 INSERT 하려고 합니다.

    > procedure TTongjangFm.TjinsertExecute(Sender: TObject);

    > begin

    > Table1.MoveBy(12);

    > Table1.insert;

    > Table1.FieldByName('Section').AsString := '24';

    > Table1.MoveBy(13);

    > Table1.insert;

    > Table1.FieldByName('Section').AsString := '24';

    > end;

    > 으로 넣었는데 12번째로 안들어가고 맨 마지막에 두줄이 추가 됩니다.

    > 정확히 12,13번째로 넝는방법이 없을까요?

    > 어떻게 해야되는지 궁금합니다. 고수님의 한 수 부탁헙니다.

    >

    >

  • Profile
    김명호 2000.10.23 17:30
    임형호님 글 잘받아 보았읍니다.

    형호님 하라는데로 했는데

    With Table1 do

    begin

    first;

    MoveBy(11);

    insert;

    FieldByName('Section').AsString := '24';

    first;

    MoveBy(12);

    insert;

    FieldByName('Section').AsString := '25';

    end;

    insert는 데는데 11번줄에 12번줄에 들어가는 것이아니라 예)레코드가 15개 있으면

    맨마지막 코드 16,17번에 Append 로 되어버립니다.

    테이블은 명은 Tj.Dbf 를 사용했구여 인덱스는 안걸었읍니다.

    혹시 테이블에 문제가 있읍니까? 잡아주세여



    임형호님 글 감사합니다..



    임형호 wrote:

    > 음... 12번째 줄하고 13번째 줄이라면...

    > 우선

    > table1.first를 해주어야할것 같습니다.

    > moveby는 제가 알기로는 기준점에서 moveby(몇칸) 이거든요.

    > 그러니가...12번째에 입력하라고 했을때...기준은 첨부터 12번째이겠죠?

    > 먼저 table1.first를 해야할것 같습니다. 우연히 첫번째 레코드에 위치해있다면 모를까...

    > 그러므로 그다음 moveby(13)도 현재 기준에서 13번재가 되니까..의도하신 위치가 안될것 같은데요.

    > 즉 만약 현재 레코드 위치가 첨이라는 가정하에..12번째에 입력된후 그 위치에서 13번째가 되니까..... 20여번째가 될것 같네요.

    > 델파이가 없어서 정확한지는 확실치는 않지만...기억상으로는...

    > 그럼..즐프하세요.

    >

    >

    > 김명호 wrote:

    > > 예) Table1.에 레코드가 30개가 있다면

    > > 12번째 줄에 레코드 2개를 강제로 INSERT 하려고 합니다.

    > > procedure TTongjangFm.TjinsertExecute(Sender: TObject);

    > > begin

    > > Table1.MoveBy(12);

    > > Table1.insert;

    > > Table1.FieldByName('Section').AsString := '24';

    > > Table1.MoveBy(13);

    > > Table1.insert;

    > > Table1.FieldByName('Section').AsString := '24';

    > > end;

    > > 으로 넣었는데 12번째로 안들어가고 맨 마지막에 두줄이 추가 됩니다.

    > > 정확히 12,13번째로 넝는방법이 없을까요?

    > > 어떻게 해야되는지 궁금합니다. 고수님의 한 수 부탁헙니다.

    > >

    > >

  • Profile
    임형호 2000.10.23 17:34
    음...델파이가 없어서 테스트를 못해보는게 한이되는군요.

    인덱스를 잡은것도 없고.....음.

    혹시 DB에 프라이머리키 설정하신것은 없나요?

    프라이머리키가 있는경우에는 프라이머리키가 인덱스 기능을 하거든요.







    김명호 wrote:

    > 임형호님 글 잘받아 보았읍니다.

    > 형호님 하라는데로 했는데

    > With Table1 do

    > begin

    > first;

    > MoveBy(11);

    > insert;

    > FieldByName('Section').AsString := '24';

    > first;

    > MoveBy(12);

    > insert;

    > FieldByName('Section').AsString := '25';

    > end;

    > insert는 데는데 11번줄에 12번줄에 들어가는 것이아니라 예)레코드가 15개 있으면

    > 맨마지막 코드 16,17번에 Append 로 되어버립니다.

    > 테이블은 명은 Tj.Dbf 를 사용했구여 인덱스는 안걸었읍니다.

    > 혹시 테이블에 문제가 있읍니까? 잡아주세여

    >

    > 임형호님 글 감사합니다..

    >

    > 임형호 wrote:

    > > 음... 12번째 줄하고 13번째 줄이라면...

    > > 우선

    > > table1.first를 해주어야할것 같습니다.

    > > moveby는 제가 알기로는 기준점에서 moveby(몇칸) 이거든요.

    > > 그러니가...12번째에 입력하라고 했을때...기준은 첨부터 12번째이겠죠?

    > > 먼저 table1.first를 해야할것 같습니다. 우연히 첫번째 레코드에 위치해있다면 모를까...

    > > 그러므로 그다음 moveby(13)도 현재 기준에서 13번재가 되니까..의도하신 위치가 안될것 같은데요.

    > > 즉 만약 현재 레코드 위치가 첨이라는 가정하에..12번째에 입력된후 그 위치에서 13번째가 되니까..... 20여번째가 될것 같네요.

    > > 델파이가 없어서 정확한지는 확실치는 않지만...기억상으로는...

    > > 그럼..즐프하세요.

    > >

    > >

    > > 김명호 wrote:

    > > > 예) Table1.에 레코드가 30개가 있다면

    > > > 12번째 줄에 레코드 2개를 강제로 INSERT 하려고 합니다.

    > > > procedure TTongjangFm.TjinsertExecute(Sender: TObject);

    > > > begin

    > > > Table1.MoveBy(12);

    > > > Table1.insert;

    > > > Table1.FieldByName('Section').AsString := '24';

    > > > Table1.MoveBy(13);

    > > > Table1.insert;

    > > > Table1.FieldByName('Section').AsString := '24';

    > > > end;

    > > > 으로 넣었는데 12번째로 안들어가고 맨 마지막에 두줄이 추가 됩니다.

    > > > 정확히 12,13번째로 넝는방법이 없을까요?

    > > > 어떻게 해야되는지 궁금합니다. 고수님의 한 수 부탁헙니다.

    > > >

    > > >