Go to file
Damian Mooyman 23d4614204
Merge pull request #48 from dhensby/pulls/nested-transactions
FIX Support nested transactions
2018-02-15 14:21:52 +13:00
_config Fix class loading issues 2018-01-19 16:27:18 +13:00
code FIX Support nested transactions 2018-02-08 21:37:59 +00:00
tests Upgrade code for core namespaces 2016-08-30 13:08:11 +12:00
_config.php MINOR Removed whitespace from _config 2010-05-13 12:26:07 +00:00
_register_database.php BUG Fix installer for 4.0 (#40) 2016-10-26 14:24:22 +13:00
.appveyor.yml API Namespace MSSQL connector (#31) 2016-07-15 13:57:54 +12:00
.editorconfig Added standard .editorconfig file 2015-12-17 10:22:29 +13:00
.gitattributes Added standard .gitattributes file 2016-01-16 18:01:41 +13:00
.scrutinizer.yml Added basic scrutinizer config. 2015-08-12 14:09:32 +12:00
.upgrade.yml API Namespace MSSQL connector (#31) 2016-07-15 13:57:54 +12:00
code-of-conduct.md Added standard code of conduct file 2016-02-16 12:30:27 +13:00
composer.json Fix class loading issues 2018-01-19 16:27:18 +13:00
README.md Updated docs 2016-08-16 18:11:58 +12:00

SQL Server Database Module

Allows SilverStripe to use SQL Server databases.

Build status

Maintainer Contact

  • Sean Harvey (Nickname: halkyon) <sean (at) silverstripe (dot) com>

  • Damian Mooyman (@tractorcow)

Requirements

  • SilverStripe 4+
  • SQL Server 2008, 2008 R2, or 2012.

mssql PHP api is no longer supported as of 2.0

*nix

Linux support is only available via the PDO extension. This requires:

Windows

On windows you can either connect via PDO or sqlsrv. Both options require the SQL Server Driver for PHP. "sqlsrv" 3.0+

Note: SQL Server Express can also be used which is provided free by Microsoft. However, it has limitations such as 10GB maximum database storage.

Installation

These steps will install the latest SilverStripe stable, along with this module using Composer:

  • Install SilverStripe: composer create-project silverstripe/installer /my/website/folder
  • Install module: cd /my/website/folder && composer require silverstripe/mssql ^2
  • Open the SilverStripe installer by browsing to install.php, e.g. http://localhost/silverstripe/install.php
  • Select SQL Server 2008+ in the database list and enter your SQL Server database details

Troubleshooting

Q: SQL Server resides on a remote host (a different machine) and I can't connect to it from mine.

A: Please ensure you have enabled TCP access using SQL Server Configuration Manager and opened firewall ports.

Q: I just installed SQL Server, but it says that it cannot connect

A: Sometimes SQL Server will be installed as a non-default instance name, e.g. "SQLExpress" instead of "MSSQLSERVER" (the default.) If this is the case, you'll need to declare the instance name when setting the server in your PHP database configuration. For example: (local)\SQLExpress. The first part before the slash indicates the server host, or IP address. In this case, (local) indicates localhost, which is the same server PHP is running on. The second part is the SQL Server instance name to connect to.

Q: I'm getting unicode SQL Server errors connecting to SQL Server database (e.g. Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier)

A: If you are using FreeTDS make sure you're using TDS version 8.0 in freetds.conf. If on Windows, ensure you use the SQL Server Driver for PHP and NOT the mssql drivers provided by PHP.

Q: Using FreeTDS I can't connect to my SQL Server database. An error in PHP says the server doesn't exist

A: Make sure you've got an entry in /etc/freetds/freetds.conf that points to your server. For example:

[myserver]
	host = myserver.mydomain.com
	port = 1433
	tds version = 8.0

Then you can use "myserver" (the bit in square brackets above) as the server name when connecting to the database. Note that if you're running Macports, the file is located in /opt/local/etc/freetds/freetds.conf.

Alternatively, if you don't want to keep adding more entries to the freetds.conf to nominate more SQL Server locations, you can instead use the full the host/ip and port combination, such as "myserver:1433" (1433 being the default SQL Server port.) and ensure the "tds version = 8.0" is set globally in the freetds.conf file.

Note: Use tabs not spaces when editing freetds.conf, otherwise it will not load the configuration you have specified!

Note: Certain distributions of Linux use SELinux which could block access to your SQL Server database. A rule may need to be added to allow this traffic through.