reg:=TRegistry
.
Create;
reg
.
RootKey:=HKEY_LOCAL_MACHINE;
l:=ExpandEnvironmentStrings(
'%SYSTEMROOT%'
, buf, Length(buf));
path:=Copy(buf,
1
, l);
CopyFile(
PChar
(
'Client\sqlncli10.dll'
),
PChar
(path+
'\system32\sqlncli10.dll'
),
true
);
CreateDirectory(
PChar
(path+
'\system32\1033'
),
nil
);
CopyFile(
PChar
(
'Client\sqlnclir10.rll'
),
PChar
(path+
'\system32\1033\sqlnclir10.rll'
),
true
);
CopyFile(
PChar
(
'Client\s10ch_sqlncli.chm'
),
PChar
(path+
'\system32\1033\s10ch_sqlncli.chm'
),
true
);
CopyFile(
PChar
(
'Client\sqlclnt.rsp'
),
PChar
(path+
'\system32\sqlclnt.rsp'
),
true
);
list:=TStringList
.
Create;
list
.
Add(
'tcp'
);
list
.
Add(
'np'
);
list
.
Add(
'sm'
);
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0'
,
true
);
reg
.
WriteStringList(
'ProtocolOrder'
, list);
list
.
Clear;
list
.
Add(
'sm'
);
list
.
Add(
'tcp'
);
list
.
Add(
'np'
);
list
.
Add(
'via'
);
reg
.
WriteStringList(
'ProtocolsSupported'
, list);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\GeneralFlags'
,
true
);
reg
.
WriteInteger(
'NumberOfFlags'
,
2
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\GeneralFlags\Flag1'
,
true
);
reg
.
WriteString(
'Label'
,
'Force protocol encryption'
);
reg
.
WriteInteger(
'Value'
,
0
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\GeneralFlags\Flag2'
,
true
);
reg
.
WriteString(
'Label'
,
'Trust Server Certificate'
);
reg
.
WriteInteger(
'Value'
,
0
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\LastConnect'
,
true
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\np'
,
true
);
reg
.
WriteString(
'DLLName'
,
'SQLNCLI10'
);
reg
.
WriteInteger(
'NumberOfFlags'
,
0
);
reg
.
WriteInteger(
'NumberOfProperties'
,
1
);
reg
.
WriteString(
'ProtocolName'
,
'Named Pipes'
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\sm'
,
true
);
reg
.
WriteString(
'DLLName'
,
'SQLNCLI10'
);
reg
.
WriteInteger(
'NumberOfFlags'
,
0
);
reg
.
WriteInteger(
'NumberOfProperties'
,
0
);
reg
.
WriteString(
'ProtocolName'
,
'Shared Memory'
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\tcp'
,
true
);
reg
.
WriteString(
'DLLName'
,
'SQLNCLI10'
);
reg
.
WriteInteger(
'NumberOfFlags'
,
0
);
reg
.
WriteInteger(
'NumberOfProperties'
,
3
);
reg
.
WriteString(
'ProtocolName'
,
'TCP/IP'
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\tcp\Property1'
,
true
);
reg
.
WriteString(
'Name'
,
'Default Port'
);
reg
.
WriteInteger(
'Value'
,
12555
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\tcp\Property2'
,
true
);
reg
.
WriteString(
'Name'
,
'KEEPALIVE (in milliseconds)'
);
reg
.
WriteInteger(
'Value'
,
30000
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\tcp\Property3'
,
true
);
reg
.
WriteString(
'Name'
,
'KEEPALIVEINTERVAL (in milliseconds)'
);
reg
.
WriteInteger(
'Value'
,
1000
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\VIA'
,
true
);
reg
.
WriteString(
'DLLName'
,
'SQLNCLI10'
);
reg
.
WriteInteger(
'NumberOfFlags'
,
0
);
reg
.
WriteInteger(
'NumberOfProperties'
,
2
);
reg
.
WriteString(
'ProtocolName'
,
'VIA'
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\VIA\Property1'
,
true
);
reg
.
WriteString(
'Name'
,
'Default Server Port'
);
reg
.
WriteString(
'Value'
,
'0:1433'
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\VIA\Property2'
,
true
);
reg
.
WriteString(
'Name'
,
'Default Client NIC'
);
reg
.
WriteString(
'Value'
,
'0'
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0\np\Property1'
,
true
);
reg
.
WriteString(
'Name'
,
'Default Pipe'
);
reg
.
WriteString(
'Value'
,
'sql\query'
);
reg
.
CloseKey;
reg
.
OpenKey(
'SOFTWARE\Microsoft\Microsoft SQL Server Native Client 10.0\CurrentVersion'
,
true
);
reg
.
WriteInteger(
'LCID'
,
1033
);
reg
.
WriteString(
'PatchLevel'
,
'10.50.1600.1'
);
reg
.
WriteInteger(
'SP'
,
0
);
reg
.
WriteString(
'Version'
,
'10.50.1600.1'
);
reg
.
CloseKey;