PowerBuilder 12 Classic DataWindow를 사용하여 ID 열이있는 SQL Server 2008 데이터베이스 테이블에 새 레코드를 삽입합니다. 삽입 후에 다른 테이블에서 사용할 ID 열의 값을 얻고 싶습니다. 내 pbodb120.ini에서PowerBuilder : SQL Server 테이블에 삽입 한 후 ID 값 가져 오기
나는이에 GetIndentity 라인을 변경 한 [MS_SQLSERVER_SYNTAX] 아래 :
내 코드 (DOCID은 ID 열)과 같습니다GetIdentity='Select IDENT_CURRENT (''&TableName'')'
:
dw_document_add.update(true, true)
li_docid = dw_document_add.getitemnumber(dw_document_add.getrow(), "docid")
문제는 정체감을 반으로 줄이는 것만 같다. 타이밍 문제 일 수 있다고 생각합니다. (레코드가 데이터베이스에 삽입됩니다.)
언제든지 신원을 확인할 수있는 방법이 있습니까?
UPDATE는
내 연결 문자열에 신원 = '@@ IDENTITY'를 추가했고 지금 작동하는 것 같군. 그러나 pbodbxxx.ini 파일에 있어야하는지 확실하지 않습니다.
나는 이미 그렇게 해왔다. 나는 ID 열을 docid로 설정했지만, 여전히 절반 정도의 시간 만 채 웁니다. 레코드는 항상 데이터베이스에 저장되지만 docid는 데이터 윈도우 열에 다시 저장되지 않습니다. – Slapout
트리거를 실행하는 중 실패 할 경우가 발생하여 값을 검색하는 데 사용 된 변수가 삭제됩니다. 필자는 SQL Server 2008을 직접 사용해 본 적이 없으므로 환경 적으로 구체적인 것을 찾아 볼 가치가 있습니다. – Terry
지금 다시 읽는 중 바보 같은 질문 : 네이티브 드라이버 대신 ODBC를 사용하는 특별한 이유가 있습니까? 네이티브 드라이버와 동일한 문제가 있습니까? ODBC 드라이버는 ID 값을 얻는 방법으로 사용할 수 있습니다. 나는 ODBC 드라이버를 더 악화 시켰습니다! – Terry