김백일 님이 쓰신 글 :
: 하안인 님이 쓰신 글 :
: : 테이블을 항상열어놓고 작업해야 하는데
: : 한 피씨에서 입력한 값이 다른 피씨에서도 반영되게 하려면 어떻게 해야 하나요.
: : 현재는 추가한 피씨의 프로그램을 종료하고 다시 띄워야 되는데..
: : 추가한후 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();
으로 설정을 했습니다. 그리고 나서 실행파일을 두번 실행하고
한 군데서 추가버튼을 누르고 다른 쪽에서 테이블만 닫았다 열어도
보이질 않습니다.
다른 문제가 있나요.
|