Q&A

  • dbgrid 수정,삭제,삽입좀 갈켜주세요
게시판을 돌아다니다보니 님 께서 올린 글이 있어서 멜을 보냅니다

제가 델파이5로 아래와 같이 다했는데 네비게이터로 디비를 삭제한다음에

셀렉트문으로 모든디비를 불러오면 이저 데이터 까지 다나와 버리는군요

어떻게 해야 데이터를 수정,삭제 할수 있나요?

제생각에는 업데이트가 안되는것 같은데

왜 ???



빠른 답변부탁드립니다....







Query 컴포넌트로 조회하신후 수정또는 등록 삭제 하실려면..



일단 기본적으로 Query 컴포넌트와 UpDateSql이 연결되어 있어야 합니다.

그리고 Query 컴포넌트의 오브젝트 인스팩터의 프로퍼티에 보시면









CachedUpDate를 True로 주셔야 합니다.

그리고 UpdateObject에는 UpdateSql을 연결시켜주셔야 합니다.

그리고 UpdateSql을 더블클릭하신후 KeyField을 맞추어 주어야

비로서 등록, 수정, 삭제가 되는 것입니다.



충분한 답변이 되셨는지 모르겠네요..

더자세한건 책을보시면 나와있으니 보시고 공보 열심히 하세요..

그럼..

즐코...



1  COMMENTS
  • Profile
    정성훈 2001.12.05 22:30
    초보아씨 wrote:

    > 게시판을 돌아다니다보니 님 께서 올린 글이 있어서 멜을 보냅니다

    > 제가 델파이5로 아래와 같이 다했는데 네비게이터로 디비를 삭제한다음에

    > 셀렉트문으로 모든디비를 불러오면 이저 데이터 까지 다나와 버리는군요

    > 어떻게 해야 데이터를 수정,삭제 할수 있나요?

    > 제생각에는 업데이트가 안되는것 같은데

    > 왜 ???

    >

    > 빠른 답변부탁드립니다....

    >

    >

    >

    > Query 컴포넌트로 조회하신후 수정또는 등록 삭제 하실려면..

    >

    > 일단 기본적으로 Query 컴포넌트와 UpDateSql이 연결되어 있어야 합니다.

    > 그리고 Query 컴포넌트의 오브젝트 인스팩터의 프로퍼티에 보시면

    >

    >

    >

    >

    > CachedUpDate를 True로 주셔야 합니다.

    > 그리고 UpdateObject에는 UpdateSql을 연결시켜주셔야 합니다.

    > 그리고 UpdateSql을 더블클릭하신후 KeyField을 맞추어 주어야

    > 비로서 등록, 수정, 삭제가 되는 것입니다.

    >

    > 충분한 답변이 되셨는지 모르겠네요..

    > 더자세한건 책을보시면 나와있으니 보시고 공보 열심히 하세요..

    > 그럼..

    > 즐코...

    >









    안녕하세요.

    UpdateSQL 을 쓴다면 Query가 Cash 상태를 적용한다라는 뜻이겠죠.

    즉 네비게이터나 그냥 키보드로 삭제를 해서 없어진다 해도

    말그대로 캐쉬상태에서 적용될뿐 실 데이타엔 적용이 안된 상태입니다.

    Database1은 Database 컴퍼넌트입니다.



    procedure ???????????????

    begin

    try

    Database1.Apply;

    except

    Database1.Rollback;

    end;

    Database1.Commit;

    end;



    위 2줄을 해보세요

    실데이타에 적용이 될겁니다.

    데이타가 잘못되었사면 Rollback 빠져나갈거구요.





    다른경우는 Cash가 아닌 일반 다이렉트 이라면

    //=추가.

    SQL.Add( 'insert into TableName Values( ' );

    SQL.Add( '어쩌구' );

    SQL.Add( '저쩌구' );

    SQL.Add( ')' );

    ExecSQL;

    //=수정.

    SQL.Add( 'Update TableName Set' );

    SQL.Add( 'Field = "저쩌구"' );

    SQL.Add( ' where FieldName="어쩌구"' );

    ExecSQL;

    //=삭제.

    SQL.Add( 'Delete From TableName' );

    SQL.Add( ' where FieldName="어쩌구"' );

    ExecSQL;





    그럼 20000.