C# 및 ODBC를 사용하여 MS Access 데이터베이스를 만들려면 어떻게해야합니까?ODBC를 사용하여 C#에서 액세스 데이터베이스 만들기
0
A
답변
1
이에서 심사 : 이 How do I specify the ODBC Access Driver Format when creating the database
I는 다음과 같이 말하고 싶지만 :
enum RequestFlags : int
{
ODBC_ADD_DSN = 1,
ODBC_CONFIG_DSN = 2,
ODBC_REMOVE_DSN = 3,
ODBC_ADD_SYS_DSN = 4,
ODBC_CONFIG_SYS_DSN = 5,
ODBC_REMOVE_SYS_DSN = 6,
ODBC_REMOVE_DEFAULT_DSN = 7
}
[DllImport("ODBCCP32.DLL",CharSet=CharSet.Unicode, SetLastError=true)]
static extern bool SQLConfigDataSourceW(UInt32 hwndParent , RequestFlags fRequest, string lpszDriver, string lpszAttributes);
을 주요 방법이 갖는
string strDriverName = "Microsoft Access Driver (*.mdb, *.accdb)";
string strAttr = "CREATE_DBV12=c:\access2007.accdb";
SQLConfigDataSource(0, RequestFlags.ODBC_ADD_DSN, strDriverName, strAttr);
경고 : 테스트되지 않은
참고 : pinvoke.net에서 pInvoke 정보를 복사했습니다.
UInt32 hwndParent가 잘못되었으므로 UIntPtr이어야합니다.
이것은 Win64에서 특히 중요합니다. 이는 내가 태그를 볼 때 필요하다고 생각합니다.
그렇다면 0 대신 UIntPtr.Zero를 사용하십시오.하지만 먼저 시도하십시오.
큰 프로젝트를 계획하고 있다면 새 프로젝트에 대한 액세스 데이터베이스를 사용하지 않을 것입니다. 독립형 데이터베이스가 필요한 경우 Firebird를 대신 사용하십시오. 그런 식으로 나중에 많은 문제를 해결할 수 있습니다.
또한 최신 64 비트 버전의 Windows에는 Access-driver가 사전 설치되어 있지 않은 AFAIK가 제공됩니다.
아마도이 방법이 유용 할 수는 없겠지만, 빈 Access 2000, 2003, 2007 데이터베이스를 어셈블리에 임베드 한 것으로 간주하고 필요에 따라 디스크에 쓰는 것을 고려해 보셨습니까? 이 기술을 성공적으로 사용했습니다! – series0ne