Send SMS messages using Microsoft SQL Express

  • Video tutorial: Send and receive SMS from SQL Express (part 1/4, Install and configure SQL Express)
  • Video tutorial: Send and receive SMS from SQL Express (part 2/4, Create database layout)
  • Video tutorial: Send and receive SMS from SQL Express (part 3/4, Configure Ozeki NG database user)
  • Video tutorial: Send and receive SMS from SQL Express (part 4/4, Send a test message)
  • 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 it's 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'
    GO
    
    

    Figure 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 it's 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:

    OleDb

    Connection 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:

    ODBC

    Connection 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:

    SQLServer

    Connection 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