CommunicationProtocol 또는 CommunicationIPVersion.
도움을 주시면 감사하겠습니다.
감사합니다,
CommunicationProtocol 또는 CommunicationIPVersion.
도움을 주시면 감사하겠습니다.
감사합니다,
글쎄, SilverWarior 설명으로 그 간단하지 않다. 문제는 해당 속성이 드라이버 관련 사항이며 TSQLConnection에서 직접 액세스 할 수 없다는 것입니다. OK, 여기 방법 :
var
dbxProps: TDBXDatasnapProperties;
begin
Assert(SQLConnection1.DriverName = 'DataSnap', 'Driver must be DataSnap');
dbxProps := SQLConnection1.ConnectionData.Properties as TDBXDatasnapProperties;
dbxProps.CommunicationProtocol := 'tcp/ip';
dbxProps.CommunicationIPVersion := 'IPv6';
end;
그게 전부 필요해, 정말 고마워! :) –
'TSQLConnection.ConnectionData.Properties'를 직접 형변환하는 대신'TSQLConnection.Params' 속성을 사용해야합니다. –
레미의 답변이 더 좋습니다. 당신은 DataSnap 만되는 드라이버에 대한 의존성을 소개하고 Remy 's는 모든 드라이버에서 작동합니다 (물론 그에 따라 매개 변수 이름을 조정합니다). 하향 투표하지 않음; 그냥 지적했다. –
당신은 그 목적을 위해 TSQLConnection.Params
속성을 사용할 수 있습니다 :
목록 연결 매개 변수.
Params은 연결 매개 변수를 나열하는 TStrings 개체입니다. 문자열 목록의 각 항목은 다음 형식을 갖습니다.
Name=Value
여기서 Name은 매개 변수의 이름이고 Value는 값입니다. 명명 된 연결 구성 (ConnectionName 속성)을 사용하는 경우
ConnectName
을 설정하면 각 매개 변수의 값이 dbxconnections.ini 파일에서로드됩니다.디자인 타임에 Object Inspector의 Params 속성을 두 번 클릭하여 문자열 목록 편집기를 사용하여 매개 변수 값을 설정할 수 있습니다. LoadParamsFromIniFile 또는 LoadParamsOnConnect을 사용하여 런타임에 연결 구성을로드하지 않는 한 사용자가 설정 한 모든 새 값은 ConnectionName을 설정할 때로드 된 값보다 우선합니다.
표시되는 특정 매개 변수는 데이터베이스 서버에 따라 다릅니다.
DriverName
속성을으로 설정하면 Params 속성이 각 매개 변수의 문자열을 포함하도록 초기화됩니다. 하나의 특정 매개 변수Database
은 모든 서버에 필요합니다. 이 값은 사용중인 서버에 따라 다릅니다. 예를 들어 InterBase의 경우Database
은 .gdb 파일의 이름이고, MySQL의 경우CREATE DATABASE
명령으로 할당 된 데이터베이스 이름입니다. 예를 들어
:
SQLConnection1.DriverName := 'DataSnap';
SQLConnection1.Params.Values['CommunicationProtocol'] := 'tcp/ip';
SQLConnection1.Params.Values['CommunicationIPVersion'] := 'IPv6';`
IDE에서 'Driver'(적어도 한 번)를 설정하면 특정 서버에 대한 SQLConnection.Params가 채워지고 Params 省略 부호 (...) 버튼을 클릭하면 사용 가능한 매개 변수 이름과 유용한 정보를 제공하는 기본값. –
@KenWhite : 실제로 [documentation] (http://docwiki.embarcadero.com/Libraries/en/Data.SqlExpr.TSQLConnection.Params)에 명시되어 있습니다. 내 대답에 견적을 추가했습니다. –
디자인 타임에 오브젝트 인스펙터를 통해 변경 될 수있는 모든 속성은 또한 런타임에 변경 될 수 있습니다. – SilverWarior
@ SilverWarior : 사실,하지만 OP의 q는 "여부"가 아니라 "방법"이었습니다. – MartynA