853 확장 라이브러리의 JDBC를 사용하여 XPages에서 DB2의 레코드를 업데이트하고 삭제하는 데 어려움을 겪었습니다.업데이트와 삭제가 XPage에서 DB2와 작동하지 않습니다.
먼저 @JDBCInsert가 완벽하게 작동하는지 확인할 수 있습니다. 또한 여러 가지 방법으로 DB2의 데이터를 볼 수 있습니다. 그러나 업데이트 또는 삭제를 시도 할 때는 작동하지 않습니다.
첫 번째 시도는 JDBCRowSet 데이터 소스를 사용하고있었습니다. 여기에있는 아이디어는 캐시 된 결과 세트로 작업 한 다음 결국 DB2에 변경 사항을 커밋하는 것입니다. 내가 삭제를 값을 수정하고 수행하여 설정 캐시 된 결과를 조작 할 수 있었다, 그러나 나는() 함수를 dataset.acceptChanges을 실행하면, 다음과 같은 메시지가 나타납니다 자바 클래스에
오류 호출 방법 '의 acceptChanges()를' 로그에서 'com.ibm.xsp.extlib.jdbc.model.JdbcRowSetAccessor'
또 다른 메시지는 다음과 같습니다
DB2의 SQL 오류 : SQLCODE = -270, SQLSTATE = 42997, SQLERRMC = 53, 드라이버 = 3.57.82
DB2에 관리자로 로그인하므로 액세스 문제가 될 수 없습니다. 특히 레코드를 삽입 할 수 있기 때문입니다. 나는 연결 관리자 컨트롤을 사용하고 AutoCommit = true를 설정하려고 시도했지만 반환 된 오류는 변경하지 않습니다.
그래서 다음에 캐시 된 결과 집합을 사용하는 대신 @JDBCUpdate를 사용하여 업데이트를 수행하려고했습니다. 이 함수는 작동하지 않지만 오류도 반환하지 않습니다. 그것은 거의 아무것도하지 않는 것처럼 보입니다.
마지막으로 업데이트를 수행하기 위해 @JDBCExecuteQuery를 시도했지만이 함수를 사용하여 업데이트를 수행 할 수 없다는 메시지가 반환되었습니다.
여기에 실패 내가 뭘하려의 몇 가지 예입니다 :
여기에 내가 JSON으로 파싱 것을 변경하려는 값이 //.
var v = {
VENUE_NAME: getComponent("inputVenue").getValue(),
ADDRESS: getComponent("inputTextareaAddress").getValue(),
TEL_NUMBER: getComponent("inputTelNumber").getValue(),
CELL_NUMBER: getComponent("inputCellNumber").getValue(),
EMAIL: getComponent("inputEmail").getValue(),
RATE: getComponent("inputRate").getValue(),
INCLUDES: getComponent("checkIncludes").getValue()
}
@JdbcUpdate ("DB2", "TABLE"V "ID = 123");
@JdbcUpdate ("db2", "TABLE", v, "ID = '123'");
//이 JSON 배열을 사용하는 삽입 기능이 작동합니다.
@JdbcInsert ("db2", "TABLE", v); 위의 오류 메시지
JDBCRowSet.acceptChanges를 반환하는 행 집합을,()를 사용하여 변경 사항을 적용 할 때
// 나는 이것을 사용;
나는 이것과 함께 많은 시간을 보냈으며, 지금은 내 마음이 비웃다.
도와주세요. 미리 감사드립니다.이 문서에
@JdbcUpdate("dt2","users",v,"id=?",id)
:
안녕. 나는 이것을 월요일에 점검 할 것이다. 많은 피드백에 감사드립니다. –
감사합니다. 내가 누락됐다? –
다행스럽게 생각합니다. –