찾다

 >  Q&A  >  본문

저장 프로시저를 사용하여 업데이트 가능한 양식 레코드 세트 구현

  1. MySQL 서버의 저장 프로시저를 기반으로 하는 레코드세트를 사용하여 양식을 설정하려고 합니다. 명령 개체를 사용하면 Set Me.Recordset = cmd.execute 잘 작동하지만 양식의 확인란과 텍스트 상자에 바인딩된 두 개의 필드(tinyint 및 varchar)를 업데이트할 수 있어야 합니다. 물론 이것은 작동하지 않습니다.

  2. 이 디자인 문제를 고려하여 .Open 메서드와 "CALL procName ('value1', 'value2');" 구문을 사용하여 레코드 세트를 연 다음 .Open에서 연결이 끊긴 새 레코드 세트를 생성해 보았습니다. 메서드를 사용하면 레코드가 반복되어 새 rs에 추가됩니다. 마지막으로 다음과 같이 양식의 레코드세트로 설정합니다.

  3. 으아아아
  4. 추가 정보: NewRecordset 변수는 양식 수준에서 비공개로 선언됩니다. 또한 저처럼 프로시저를 호출하는 것이 나쁜 습관이라는 것을 알고 있지만 이 작업을 수행하는 다른 방법은 생각나지 않습니다.

  5. 중요: 로컬 테이블을 사용할 수도 없고 사용하고 싶지도 않습니다. 그러면 쉽게 해결할 수 있지만 나머지 코드와도 일치하지 않습니다. 감사합니다 :)

문제는 설명대로 수행하면 바인딩된 필드에 #Name 오류가 발생하거나 레코드세트로 설정되어 해당 값을 변경할 수 있지만 초기 값이 표시되지 않는다는 것입니다.

P粉086993788P粉086993788448일 전573

모든 응답(1)나는 대답할 것이다

  • P粉043470158

    P粉0434701582023-09-14 00:32:59

    제가 이해한 바에 따르면 새 레코드 세트를 만들고 원래 레코드 세트에서 스키마를 복사하는 등 다양한 접근 방식을 시도했지만 여전히 양식에 바인딩된 확인란 필드를 업데이트할 수 없습니다.

    이런 방식으로 저장 프로시저를 사용하는 것은 어려울 수 있습니다. 호출된 저장 프로시저가 업데이트를 허용하는지 여부를 개별적으로 테스트하는 것이 좋습니다.

    1. 원본 레코드 세트의 복사본을 만들려면 수동 복사 모드 대신 .Clone 방법을 사용해 보세요.
    2. 양식의 체크박스 컨트롤이 레코드세트 필드에 제대로 바인딩되어 있고 업데이트를 허용하는지 확인하세요.
    3. 데이터 업데이트에 더 많은 유연성을 제공하려면 adOpenKeyset과 같은 다른 커서 유형을 사용하는 것이 좋습니다.

    도움이 되길 바랍니다!

    회신하다
    0
  • 취소회신하다