Send SMS messages using Microsoft SQL Express
On this page you can get the necessary information to configure Microsoft SQL Express database server for SMS messaging. This page is an extension to the How to send SMS from an database server guide. The solution uses the Ozeki NG - SMS Gateway software installed on your PC.
To setup your system, first you need to install and configure Ozeki NG SMS Gateway for SMS messaging. After Ozeki NG is configured for SMS messaging, you can open its management console and you can install a database user in it. This database user will make SMS sending and receiving possible from your SQL Express database server. The database user will require you to provide the database connection type and the database connection string. For SQL Express you will have to use the following parameters:
Connection type:
OleDb
Connection string:
Provider=SQLNCLI;Server=.\SQLEXPRESS;MultipleActiveResultSets=True; User ID=ozekiuser;password=ozekipass;Database=ozeki;Persist Security Info=True
After you have configured the database user, you need to create the database layout in SQL express to be able to send and receive SMS messages by using SQL INSERT and SELECT statements. You can create the database layout by opening a windows command prompt (Start->Run->cmd.exe), and starting the SQL Command interpreter by typing:
C:\sqlcmd -S .\SQLExpress
Once the SQL command interpreter is running, you should enter the following commands. If the command interpreter could not connect to SQL express, try the instructions provided on the How to connect to SQL Express using the SQL command line utility page.
create database ozeki GO use ozeki GO CREATE TABLE ozekimessagein ( id int IDENTITY (1,1), sender varchar(255), receiver varchar(255), msg nvarchar(160), senttime varchar(100), receivedtime varchar(100), operator varchar(30), msgtype varchar(30), reference varchar(30), ); CREATE TABLE ozekimessageout ( id int IDENTITY (1,1), sender varchar(255), receiver varchar(255), msg nvarchar(160), senttime varchar(100), receivedtime varchar(100), operator varchar(100), msgtype varchar(30), reference varchar(30), status varchar(30), errormsg varchar(250) ); GO sp_addLogin 'ozekiuser', 'ozekipass' GO sp_addsrvrolemember 'ozekiuser', 'sysadmin' GOFigure 1 - SQL Create table script
If you want to work with larger messages, you can increase the size of the msg field, or you may also change its data type.
After the database layout has been created you are ready to send your first SMS. To send your first SMS message you should insert a record into the ozekimessagout database table. You can use the following SQL command to achieve this:
insert into ozekimessageout (receiver,msg,status) values ("+44111223465","Hello world","Send"); GO
Hint: You can download SQLExpress free of charge from the following URL: http://msdn2.microsoft.com/en-us/express/aa718378.aspx
Trouble shooting
On some systems, you might have difficulties connecting to SQL Express. This is the error message you might experience:
ERROR 6001: Database connection error: The 'SQLNCLI' provider is not registered on the local machine.
SQLNCLI is installed with SQL Server Native Client. This error indicates that this is not installed on your machine. You can try to change the provider to "sqloledb" to use OLE DB and see if that works. In this case your connection string would be:
Connection type:OleDbConnection string:
Provider=SQLOLEDB;Data Source=.\SQLEXPRESS;User ID=ozekiuser;password=ozekipass; Database=ozeki;Persist Security Info=True
Or change the whole connection string to ODBC and use the following connection string:
Connection type:ODBCConnection string:
Driver={SQL Server};Server=.\SQLEXPRESS;User ID=ozekiuser;password=ozekipass; Database=ozeki;Persist Security Info=True;
Or change the whole connection string to SQLServer and use the following connection string:
Connection type:SQLServerConnection string:
Server=.\SQLEXPRESS;User ID=ozekiuser;password=ozekipass;Database=ozeki;Persist Security Info=True;One of these should work.
Microsoft SQL Server 2008
If you use Microsoft SQL Server 2008, apply the following connection string:
Connection string:Provider=SQLOLEDB.1;Data Source=YourHostName;Persist Security Info=False; Integrated Security=SSPI;User ID=UserName;Password=User'sPassword;Initial Catalog=DatabaseName
More information