.NET C#을 사용하여 인터베이스 7.1에 연결하는 가장 좋은 방법

StackOverflow https://stackoverflow.com/questions/219684

  •  03-07-2019
  •  | 
  •  

문제

.NET/C#을 사용하여 인터베이스 7.1 데이터베이스에 연결하는 가장 좋은 방법을 설명해 주시겠습니까?

응용 프로그램은 많은 최종 사용자 컴퓨터에 설치되므로 응용 프로그램과 함께 패키지가 적을수록 "애드온"이 적을수록 더 나은 "애드온"이 적용됩니다.

도움이 되었습니까?

해결책

CodeGear는 인터베이스 등록 된 사용자를위한 무료 ADO.NET 2.0 드라이버를 제공합니다.

http://cc.embarcadero.com/item/25497

"Inter -Base의 등록 된 사용자"에는 Free Interbase 2007 Developers Edition이 포함되어 있습니다. 다운로드는 2007 년이지만 Inter -Base 7과 잘 작동하며 CodeGear의 인터베이스 팀은 해당 목적으로 사용하는 사람들에게 아무런 문제가 없다고 말했습니다.

인터베이스와 파이어 버드마다 SQL 구문이 다소 다르고 다른 기능도 다르므로 Firebird 용으로 설계된 드라이버를 사용하지 않는 것이 좋습니다. 특히, 나는 인터베이스와 함께 fbclient.dll에 의존하는 드라이버를 사용하는 것이 완전히 위험하다고 생각합니다.

다른 팁

Firebird .NET 제공 업체는 모노에있는 것과 동일하다고 생각합니다. 둘 다 탁월한 BTW입니다.

도움말 파일의 코드는 많은 상황에서 작동하지만 특히 Windows Server 2012 Machines에서 특히 그렇지는 않습니다.

Embarcadero에서 최신 interbase_ado.net을 얻으십시오. 내가 업데이트 한 버전은 Borland.data.adodbxclient.dll의 버전 16.0.4327.44959입니다. (파일, 속성, 세부 사항을 마우스 오른쪽 버튼으로 클릭하십시오. 버전 번호를 참조하십시오). 설치는 또한 사용하지 않더라도 64 비트 용 x64 버전 폴더를 만듭니다. 나는 아무런 문제없이 x86을 목표로 삼았다.

이 ADO.NET 설치는 모든 컴퓨터에서 수행 할 필요는 없습니다. 프로젝트에 아래 파일을 포함시키고 실행중인 시스템에 인터베이스를 설치하면됩니다. 개발 컴퓨터에 운전자 만 설치했습니다.

설치는 데이터베이스에 연결하기 위해 응용 프로그램에 넣는 데 필요한 모든 파일을 추출합니다. 또한 Inter -Base XE 설치 및 사용법 명령어를위한 readme ado_net 2_0 드라이버를 만듭니다. 중요 사항: 이 도움말 HTM 파일의 DB 연결 예제는 시간의 100% 작동하지 않습니다. 솔루션은 아래 코드 예를 참조하십시오.

ODBC 연결이 필요하지 않습니다. .NET 프로젝트에 포함되고 로컬 복사 할 파일 목록은 다음과 같습니다.

  • borland.data.adodbxclient.dll
  • borland.data.dbxcommondriver.dll
  • borland.data.dbxinterbasedriver.dll
  • BORLAND.DELPHI.DLL
  • borland.vcldbrtl.dll
  • borland.vclrtl.dll
  • dbxadapter.dll (x86 또는 x64 버전)
  • dbxint.dll (x86 또는 x64 버전)
  • gds32.dll (인터베이스 DB 설치에서)
  • interbase.msg (인터베이스 DB 설치에서)

나는 두 개의 연결 문자열이 작동하는 것을 발견했다. 연결하려면 두 개의 연결 문자열 중 하나를 사용하십시오.

connectionstring1 = "DriverName=Interbase;Database=" + database + ";User_Name=" + userid + ";Password=" + password;
connectionstring1 = connectionstring1 + ";SQLDialect=3;MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,";
connectionstring1 = connectionstring1 + "PublicKeyToken=91d62ebb5b0d1b1b;GetDriverFunc=getSQLDriverINTERBASE;LibraryName=dbxint30.dll;VendorLib=GDS32.DLL";

connectionstring2 = “User_Name="+userid+";Password="+password+";Database="+database+";ServerType=0;Charset=NONE;LibraryName=.\\dbxint.dll;VendorLib=GDS32.DLL;GetDriverFunc=getSQLDriverINTERBASE;SQLDialect=3";


GlobalObjects.dbconn = (TAdoDbxConnection)TAdoDbxInterBaseProviderFactory.Instance.CreateConnection();

GlobalObjects.database = databasepath;
GlobalObjects.dbconn.ConnectionString = connectionstring1;  //or connectionstring2
GlobalObjects.dbconn.Open();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top