SQL DLL 30-days Trial Version

Download the 30-days SQL DLL Trial Version for APL+Win

Other pages of interest:

SQL is a C# ActiveX DLL which gives any APL+Win (or Dyalog APL, VB6 or C#) developer direct and full easy access to MS Access and SQL Server databases.

Please read this page before installing the SQL DLL.


  • You must have the Microsoft .Net Framework 4.0 installed on your computer.
  • You must have MS Access or SQL Server or SQL Server Express installed on your computer (SQL Server or SQL Server Express is required for the Tutorial)
  • You must have a version of APL+Win greater or equal to v3


Proceed as follows to install the SQL DLL 30-days Trial:

  1. run SQLSetup.exe after downloading it using one of the above links
  2. set the SQL.sf file as your top level UCMD file:
          ]ufile <path>\sql
    where <path> is the full path of the folder where you installed the SQL control
  3. the SQL.w3 sample workspace is delivered in APL+Win v6.4 format
    If you own an earlier version of APL+Win you can recreate the SQL.w3 workspace from the SQL.sf User Command file as follows:
          ]uload * /F=<path>\SQL
          )wsid <path>\SQL
    where <path> is the full path of the folder where you installed the SQL DLL.

The SQL Sample Workspace

Once the SQL DLL product has been properly installed as described in the above steps, you can load the SQL.w3 workspace

The SQL Sample Workspace Tutorial

The SQL.w3 workspace includes a Tutorial that demonstrates most of the SQL features.

In order to be able to run this Tutorial, you must first set the SQL.sf file as your top level User Command file: you can do so by executing function: SetUCMDFile

You can then run the Tutorial with:

      ]demo SQLDemo


      ]DEMO SQLDemo

if your User Command Processor is case sensitive.

Be sure to run the Tutorial!

Getting documentation

If you installed the product properly and set the SQL.sf file as your top level UCMD file, then you can use the following 4 User Commands to get documentation about the DLL:

First the ]sqlprops User Command lets you know about all properties available in the DLL

xAccConString   xAccOpened      xConString      xOpened         xVersion
xAccConStrings  xCalledFromAPL  xMsgBoxErrors   xThrowErrors

Then the ]sqlmeths User Command lets you know about all methods available in the DLL

XAbout                  XAccUpdateData          XDbExists
XAccAddColumn           XAddData                XDropDatabase
XAccAddData             XAddPrimaryKey          XDropTable
XAccCloseDatabase       XAddRelation            XExecNonQuery
XAccColumns             XAddTable               XExecQuery
XAccCompactDatabase     XChangeNullable         XForeignKeys
XAccDropColumn          XCloseDatabase          XMdbStructure
XAccDropTable           XColumnDescriptions     XNextId
XAccExecNonQuery        XColumns                XNumRecs
XAccExecQuery           XColumns_2              XOpenDatabase
XAccLinkedTables        XConvertToDoubleMatrix  XPrimaryKeys
XAccNumRecs             XConvertToIntMatrix     XRelations
XAccOpenDatabase        XConvertToStringMatrix  XRemoveRelation
XAccPrimaryKeys         XCreateDatabase         XTables
XAccRelations           XCreateRemoteDatabase   XUpdateData
XAccTables              XDatabases

And finally the ]sqldoc user command (which is not case sensitive for its argument) lets you get documentation about any property or method:

      ]sqldoc CreateRemoteDatabase
Create a new SQL Server database on a remote computer (=Server)

C# Syntax:    object CreateRemoteDatabase(string ipaddress, string userId, string password, string fileName)
APL Syntax:   'sql'⎕wi'*XCreateRemoteDatabase' ipaddress userId password fileName

fileName must be a full path file name ending with .mdf or just a file name with no path and no extension
ipaddress must be the remote Server IP address or the remote Server domain name
userId must be the user id to be used to connect to the database (should exist in SQL Server Management Studio\Security\Logins)
password should be the user password

Note: do not use any of the following for the database name:
- tempdb
- any name starting with:  sys

    'sql'⎕wi'*XCreateRemoteDatabase' '' 'userid' 'password' 'd:\temp\test110818.mdf'
    'sql'⎕wi'*XCreateRemoteDatabase' '' 'userid' 'password' 'test110818'
    'sql'⎕wi'*XCreateRemoteDatabase' '' 'userid' 'password' 'test110818'