ODBC 드라이버에 따라 BeginTrans를 호출하기 전에 레코드 집합을 열면 롤백을 호출할 때 문제가 발생할 수 있습니다. 사용 중인 특정 드라이버를 확인해야 합니다. 예를 들어 Microsoft ODBC 데스크톱 드라이버 팩 3.0에 포함된 Microsoft Access 드라이버를 사용하는 경우 개방형 커서가 있는 데이터베이스에서 트랜잭션을 시작하지 않아야 한다는 Jet 데이터베이스 엔진의 요구 사항을 고려해야 합니다. MFC 데이터베이스 클래스에서 열린 커서는 열린 CRecordset 개체를 의미합니다. 자세한 내용은 기술 참고 68을 참조하십시오. 그러나 경우에 따라 핸들을 직접 사용해야 할 수도 있습니다. 예를 들어 클래스 CDatabase를 통하지 않고 ODBC API 함수를 직접 호출해야 하는 경우 매개 변수로 전달하기 위해 연결 핸들이 필요할 수 있습니다. 아래 코드 예제를 참조하십시오. 이 예제에서는 CDocument 파생 클래스에서 CDatabase를 사용하는 것을 보여 줍니다.
예를 들어 CRecordset::GetBookmark를 호출한 다음 CRecordset::Requery를 호출하면 GetBookmark에서 얻은 책갈피가 더 이상 유효하지 않을 수 있습니다. CRecordset::SetBookmark를 호출하기 전에 GetBookmarkPersistence를 호출해야 합니다. lpszConnectString는 ODBC 연결 문자열을 지정합니다. 여기에는 데이터 원본 이름뿐만 아니라 사용자 ID 및 암호와 같은 기타 선택적 정보가 포함됩니다. 예를 들어 " DSN=SQLServer_Source; UID=SA; PWD=abc123"은 가능한 연결 문자열입니다. lpszConnectString에 대해 NULL을 전달하면 데이터 원본 대화 상자에서 데이터 원본을 선택하라는 메시지가 표시됩니다. OnSetOptions 는 로그인 시간 시간 값을 설정합니다. SetQueryTimeout 및 멤버 함수에 대한 이전 호출이 있는 경우 OnSetOptions는 현재 값을 반영합니다.
그렇지 않으면 기본값을 설정합니다. CDatabase::openRead데이터 원본을 읽기 전용으로 엽니다. "귀하의 답변 게시"를 클릭하면, 당신은 우리의 서비스 약관, 개인 정보 보호 정책 및 쿠키 정책에 동의합니다 이것은 "ODBC 3.x"에서 사용되지 만이 지원 될 가능성이 있습니까? 트랜잭션이 성공적으로 반전된 경우 비영; 그렇지 않으면 0. 롤백 호출에 실패하면 데이터 원본 및 트랜잭션 상태가 정의되지 않습니다. 롤백이 0을 반환하는 경우 데이터 원본을 확인하여 상태를 확인해야 합니다. 이는 OpenEx 또는 Open 호출에 지정된 DSN(데이터 원본 이름)과 동일하지 않습니다. GetDatabaseName 반환은 ODBC에 따라 다릅니다. 일반적으로 데이터베이스는 테이블의 컬렉션입니다.
이 엔터티에 이름이 있는 경우 GetDatabaseName 을 반환합니다. SQLAPI++는 여러 SQL 데이터베이스(오라클, SQL Server, DB2, Sybase, 인포믹스, 인터베이스, SQLBase, MySQL, 포스트그리브, SQLite, SQL Anywhere 및 ODBC)에 액세스하기 위한 C++ 라이브러리(기본적으로 헤더 파일 집합)입니다. 구현하기 쉽고 간단합니다. 드라이버={마리아DB ODBC 1.0 드라이버}; 서버=로컬 호스트;데이터베이스=mydb; UID=테스트; PWD = 그럼 다시 32비트 ODBC 소스를 만들고 잘 작동합니다! ODBC 데이터 원본 연결에 대한 공용 핸들을 포함합니다. 기본값은 0으로, 데이터베이스가 쓰기 액세스와 함께 공유됨으로 열리고, ODBC 커서 라이브러리 DLL이 로드되지 않으며, ODBC 연결 대화 상자가 연결을 하기에 충분한 정보가 없는 경우에만 표시됩니다.
Published by: gianni57
Comments are closed.