하안인 님이 쓰신 글 :
: 김백일 님이 쓰신 글 :
: : 하안인 님이 쓰신 글 :
: : : 테이블을 항상열어놓고 작업해야 하는데
: : : 한 피씨에서 입력한 값이 다른 피씨에서도 반영되게 하려면 어떻게 해야 하나요.
: : : 현재는 추가한 피씨의 프로그램을 종료하고 다시 띄워야 되는데..
: : : 추가한후 ApplyUpdate는 해주었거든요.
: :
: : IBX를 쓰시는 경우시죠?
: : 저도 IBX를 처음 썼을 때 고민하던 문제가 이거였지요.
: : 알고보니 방법은 정말 간단하더군요.
: :
: : (다음 설명은 C++빌더 IBX의 경우입니다.)
: :
: : 현재 사용하는 트랜잭션 객체가 IBTransaction1이라면
: : (보통 TIBDatabase::DefaultTransaction의 속성을 IBTransaction1로 지정하겠지요.)
: :
: : IBTransaction1->CommitRetaining();
: : 을 쓰면 커밋이 되고, 연결은 그대로 지속됩니다.
: :
: : 만약,
: : IBTransaction1->Commit();
: : 을 사용하면 커밋을 한 후에 연결이 끊어져 버리므로 다시 연결을 해야합니다.
:
: 알려주신대로 간단히 프로그램을 만들어서 테스트 해 보았습니다.
: 그래도 a 피씨에서 입력한 값을 b에서 읽어 들이려면 데이베이스의 connected를
: 끊고 다시 연결해야 보여짐니다.
:
: 제가 뭐 잘못한거라도 있나요.
: 프로그램에 IBDatabase,IBTracsaction,IBTable을 하나 올려놓고
: 추가버튼을 누르면
: IBTable1->Open();
: IBTable1->Insert();
: IBTable1->FieldByName("t1")->AsString = Edit1->Text;
: IBTable1->FieldByName("t2")->AsString = Edit2->Text;
: IBTable1->Post();
: // IBDatabase1->ApplyUpdates(0);
:
: IBTransaction1->CommitRetaining();
:
: 으로 설정을 했습니다. 그리고 나서 실행파일을 두번 실행하고
: 한 군데서 추가버튼을 누르고 다른 쪽에서 테이블만 닫았다 열어도
: 보이질 않습니다.
: 다른 문제가 있나요.
제가 빠트린 내용이 하나 있네요.
IBTransaction1 객체에 마우스 오른쪽 버튼을 눌러
[Transaction Editor...]를 선택하신 후,
[Transaction Property]를 [Read Committed]로 설정해보세요.
MIDAS/DataSnap과도 관계가 있을지도 모르지만 그 부분은 제가 전혀 모릅니다. -_-;;
|