2011-06-11 3 views
1

DataAbstract 및 RemObjects를 사용하여 클라이언트/서버 응용 프로그램을 구축했습니다. 여기서 클라이언트는 DB에 넣을 서버의 이진 변수를 전송합니다. 서버 기능은 다음과 같습니다.서버의 blob 필드를 업데이트하는 방법

function SetItemContent(const anItemId: UnicodeString; const anItemContent: Binary): Boolean; 

그러나 블로 브에서 이진 변수를 저장하기 위해 서버에서 테이블에 액세스하는 것이 좋지 않습니다. DA 설명서에서 참조를 찾을 수 없습니다.

답변

2

서비스 구현 모듈에서 TDALocalDataAdapter를 사용하여 TDAMemDataTable을 연결할 수 있습니다. 그런 다음 동적 위치 (또는 매개 변수화 된 데이터 테이블)를 사용하여 일반적인 TDataset 기술을 사용하여 레코드를 찾고 업데이트 할 수 있습니다. (삽입, 편집, 게시)

모든 업데이트는 트랜잭션으로 처리해야합니다. Connection.BeginTransaction, RollbackTransaction 및 CommitTransaction을 사용하십시오.

당신은 또한 IDASQLCommand을 사용할 수 있습니다

편집 ==== : Connection.NewCommand 방법을 사용합니다. 이 매개 변수를 SQL로 직접 지정하거나 (더 나은 IMHO ++) 스키마에서 작성한 매개 변수화 된 업데이트/삽입 SQL 명령의 이름을 제공 할 수 있습니다.

MyDataset.IsEmpty를 사용하여 Connection.NewDataset 메서드의 IDADataset을 사용하여 설정하려면 삽입/업데이트 여부를 알아야합니다. 먼저 스키마에 데이터 집합을 작성하거나 SQL을 전달하십시오.

트랜잭션 사용에 대한 요점은이 방법에 여전히 적용됩니다.

++ 더 나은 이유는 각 데이터 테이블 또는 명령 개체에 대해 여러 명령문을 사용하여 여러 DB 백 엔드를보다 잘 지원할 수 있기 때문입니다.

+0

나는 TDNemDataTable을 만드는 것이 간단한 작업을 위해 많은 것을하는 것처럼 보입니다. 아무도 더 나은 방법으로 오지 않으면 당신의 대답을 받아 들일 것입니다. – jonjbar

+0

@ 존, 내 대답에 추가 정보를 추가했습니다. – Stuart

+0

몇 가지 테스트를 마친 후에 나는 당신이 한 것과 같은 결론을 내 렸습니다. 대답 해 주셔서 감사합니다. – jonjbar