2011-03-31 3 views
8

웹 응용 프로그램에서 직접 SQL 쿼리를 사용하지 않으려 고합니다. 나는 주변을 둘러 보았고 ADO Recordset가 직업에있어 가장 좋거나 가장 안전한 도구 일 것이라고 결론을 내 렸습니다. 레코드를 데이터베이스 테이블에 삽입해야합니다. 불행히도 방금 삽입 한 레코드에 대한 ID 값을 얻는 방법에 관해서는 분실했습니다. 여기에 내가 지금 뭘 찾았는지의 감소이다 :이 ADODB.Recordset에서 삽입 ID를 얻는 방법?

<% 
dim insertID, rs 
set rs = Server.CreateObject("ADODB.Recordset") 
rs.Open "my_table_name", conn, adOpenForwardOnly, adLockOptimistic 

rs.AddNew() 

Call m_map_values_to_rs(rs) 

rs.Update() 

insertID = rs("id") 

rs.Close() 
rs = Nothing 
%> 

내가 성공적으로 기록을 삽입되어있는 코드는,하지만 난 내 인생에 Recordset의 id 필드를 얻을 방법을 알아낼 수 없습니다 삽입 후 업데이트하십시오. 이 Recordset에서 ID 열 값을 다시 얻으려면 어떻게해야합니까?

업데이트 - 위의 코드에 대한 해결책이 있습니다.

adOpenForwardOnly 대신 adOpenKeyset으로 커서 유형을 변경해야했습니다. 이 작업을 마친 후 레코드는 삽입 후 "자동 번호"필드의 새 값으로 자동 업데이트됩니다. 그러나 그것은 이 아닙니다. 당신이 생각하는 것. rs("id")의 값은 정수 또는 변형이되지 않습니다. 그것은 일종의 Automation 유형이되고 숫자로 평가 될 수 없습니다. 어떤 이유로 든 CInt()를 해당 유형에 직접 사용할 수 없습니다. 따라서 값을 문자열로 변환 한 다음 Int으로 변환해야합니다. 그 방법은 다음과 같습니다.

insertID = CInt(rs("id") & "") 

답변에 감사드립니다. 그것은 대단히 도움이되었습니다.

+0

감사를 알려주세요 - 그건 필드 개체입니다 가치있는 정보 – Dee

+1

올드 실 있지만, RS ("ID")입니다. 당신은 rs ("id")를 얻을 수 있어야합니다. 값 – alfadog67

답변

3

이 기사에서는 예제 코드로 ID 값을 가져 오는 방법에 대해 설명합니다. 당신이 이후에 더 도움이 필요하면 이것은 우리가 업데이트

+0

고마워요, 나는 그것을 보았습니다/그 하나를 제외하고 분명히 마지막 부분의 관련성을 놓쳤습니다. – sholsinger

+0

이후에 반환 된 필드 값에 문제가 발생했습니다. 내가 어떻게 처리했는지 질문해라. – sholsinger

+4

이 답변의 URL이 더 이상 작동하지 않습니다. – lpacheco

관련 문제