2013-05-14 2 views
0

에 나는 로컬 C 드라이브에, Delphi XE4 & SQL server express 12을 사용하고 있습니다. ADO comp를 통해 Access DB에 Delphi를 연결할 수 있습니다. 문제는 SQL 서버 db - it doesn't see my server/db을 연결하려고 할 때입니다. 내 서버 이름 (USER-PC\SQLEXPRESS - name created by SQLserver) 또는 내 db 이름 (C:\Program Files(x86)\Microsoft SQL Server\MSSQL11.SQLExpress\MSSQL\DATA\TestDB.Mdf)을 어떻게 지정해야할지 모르겠습니다. 사용 된 암호가 없습니다. 나는 ADoTable (SQL SERVER Native Client 11.0 as well as Microsoft OLE DB Provider for SQL Server)TSQLConnection을 통해 시도했다. (I've been using MS Access lately - out of touch with external db connection...)링크 델파이 SQL 서버

나는 해결책을 찾아 냈다. 32 비트 (프로그램) 및 64 비트 (기계) 비 호환성이었습니다. 32 비트에서 ODBC/SQL 네이티브 서버를 정의해야했으며 기본적으로 64 비트에서 정의되었습니다.

+0

어떤 델파이 버전입니까? 상위 버전에서만 클라이언트/서버 DB를 지원합니다. –

+0

저는 델파이 XE4 – user2378627

+1

을 사용하고 있습니다 ** 버젼 **입니다. 그러나 ** ** 어떤 버전 **을 사용하고 있는지 알고 싶습니다. –

답변

0

당신은 당신이 다음 연결을 구축하는 데 사용되는 ConnectionString을 사용할 수 있습니다, 어떻게 든 서버 정보를 제공해야합니다. 연결 문자열은 다음과 같습니다

ConnString = 
    'Provider=SQLOLEDB.1;Persist Security Info=False;' + 
    'User ID=%s;Password=%s;Data Source=%s;Use Procedure for Prepare=1;' + 
    'Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;'+ 
    'Tag with column collation when possible=False'; 

this example uing의 ADOQuery를 살펴 보자.

그리고 설명서를 한 번 봐 걸릴 : 당신이 TADOConnection 구성 요소를 마우스 오른쪽 버튼으로 클릭하면 연결 문자열을 편집 할 수있는 옵션이 제공됩니다 Connecting to Databases - Overview

+0

고맙습니다. @ 클라우드 마블. 델파이가 내 서버를 "보지 않는 것"이라면 SQL 서버를 처리하는 방법을 모르겠습니다. 어쩌면 내 SQL 서버 설정이 잘못 되었습니까? – user2378627

0

합니다. 이것은이 마법사를 엽니 다 클릭 ... 버튼 라벨 빌드로,

을 대화 상자가 열립니다. "SQL Server 용 Microsoft OLE DB 공급자"를 공급자로 선택하고 다음을 클릭합니다. 현재 표시되어있는 모든 SQL Server 목록이 제공됩니다. 귀하가이 목록에 없다면 사용할 수 없습니다. SQL Server 서비스가 시작 되었습니까? 이 목록에있는 경우

다음 유효한 연결 문자열을 구축을 통해 마법사를 따릅니다.

+0

위의 Provider와 SQL Server Native Client 11.0을 사용해 보았지만 서버 목록이 나타나지 않았습니다. 나는 성공하지 않고 SQL 서버를 열어 보았습니다. 델파이가 SQL 서버를 "보게"하는 방법을 모르겠습니다. – user2378627

+0

Build String String 마법사를 사용하면 조직 내에서 나열된 수십 개의 SQL Server 인스턴스를 볼 수 있기 때문에 문제는 SQL Server가 아니라 Delphi가 아닙니다. –

0

사실, 당신은 비트 수없이 점 (32/64)로 MSSQL Express에 연결 얻을 수 있습니다. SQL Server Express가 공유 메모리 대신 TCP/IP 및/또는 명명 된 파이프 연결을 사용하도록 설정 했습니까? 확인하려면

, SQL Server 구성 관리자 (이것은 2012 년 변경되었을 경우는 모르겠지만, 2008/2008R2의 이름입니다) 실행하고 < 서버 인스턴스>에 대한 SQL Server 네트워크 구성/프로토콜에서 보면 항목 (64 비트 시스템에서이 중 2 개가 실행됩니다. 내 메모리가 실패하지 않으면 내 컴퓨터가 32 비트이므로 둘 다 확인하십시오).