MySQL 서버의 저장 프로시저를 기반으로 하는 레코드세트를 사용하여 양식을 설정하려고 합니다. 명령 개체를 사용하면 Set Me.Recordset = cmd.execute
잘 작동하지만 양식의 확인란과 텍스트 상자에 바인딩된 두 개의 필드(tinyint 및 varchar)를 업데이트할 수 있어야 합니다. 물론 이것은 작동하지 않습니다.
이 디자인 문제를 고려하여 .Open 메서드와 "CALL procName
('value1', 'value2');" 구문을 사용하여 레코드 세트를 연 다음 .Open에서 연결이 끊긴 새 레코드 세트를 생성해 보았습니다. 메서드를 사용하면 레코드가 반복되어 새 rs에 추가됩니다. 마지막으로 다음과 같이 양식의 레코드세트로 설정합니다.
추가 정보: NewRecordset 변수는 양식 수준에서 비공개로 선언됩니다. 또한 저처럼 프로시저를 호출하는 것이 나쁜 습관이라는 것을 알고 있지만 이 작업을 수행하는 다른 방법은 생각나지 않습니다.
중요: 로컬 테이블을 사용할 수도 없고 사용하고 싶지도 않습니다. 그러면 쉽게 해결할 수 있지만 나머지 코드와도 일치하지 않습니다. 감사합니다 :)
문제는 설명대로 수행하면 바인딩된 필드에 #Name 오류가 발생하거나 레코드세트로 설정되어 해당 값을 변경할 수 있지만 초기 값이 표시되지 않는다는 것입니다.
P粉0434701582023-09-14 00:32:59
제가 이해한 바에 따르면 새 레코드 세트를 만들고 원래 레코드 세트에서 스키마를 복사하는 등 다양한 접근 방식을 시도했지만 여전히 양식에 바인딩된 확인란 필드를 업데이트할 수 없습니다.
이런 방식으로 저장 프로시저를 사용하는 것은 어려울 수 있습니다. 호출된 저장 프로시저가 업데이트를 허용하는지 여부를 개별적으로 테스트하는 것이 좋습니다.
도움이 되길 바랍니다!