웹 응용 프로그램에서 직접 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") & "")
답변에 감사드립니다. 그것은 대단히 도움이되었습니다.
감사를 알려주세요 - 그건 필드 개체입니다 가치있는 정보 – Dee
올드 실 있지만, RS ("ID")입니다. 당신은 rs ("id")를 얻을 수 있어야합니다. 값 – alfadog67