MSSQL OLEDB plug-in

From NSIS Wiki
Jump to navigationJump to search
Author: sgiusto@mmpoint.it (talk, contrib)


Download

Version 2.x: (new plugin API, distinct versions for NON-Unicode and Unicode builds of NSIS)
Mssql_oledb2.zip (570 KB)

Version 1.x: (old plugin API, limited support to Unicode scripts)
MSSQL_OLEDB.zip (73 KB)

Description

The MSSQL OLEDB plugin for NSIS provides some functions to add MSSQL interoperability within an install script

Version: 1.0 12th March 2007.

  • First Release

Version: 1.1 20th March 2007.

  • Fixed bug in DllMain under Windows 2000

Version: 1.2 29th March 2007.

  • Added SQL_ExecuteScript function

Version: 1.3 24th May 2007.

  • Fixed a bug in Data Column Binding causing data truncation in rowsets

Version: 1.4 11th Sept 2007.

  • Added support for Unicode SQL scripts in SQL_ExecuteScript function

Version: 2.0 11th April 2009.

  • Added support for new plugin api.
  • Added unicode version (Unicode scripts support is available only in unicode version from now on).
  • Script length is only limited by memory

Version: 2.0.1 1st August 2009.

  • Fixed an allocation bug. Global variables were not set to null after deletion in SQL_Logout function.

Supported on: Windows NT, Windows 2000, Windows XP,Vista,Win2k3,Win2k8,Seven.

Notes

  • MSSQL_OLEDB.dll is the standard (non Unicode) version of the plugin
  • UMSSQL_OLEDB.dll is the Unicode version of the plugin
  • To execute Unicode scripts the Unicode version of NSIS and the Unicode version of the plugin MUST be used.

Functions

SQL_Logon

MSSQL_OLEDB::SQL_Logon <server> <user> <password>
Logs on a SQL Server
<server> - Network name of SQL Server to log on
<user> - User (leave blank to use windows authentication)
<password> - Password
Returns
  • "0" Success, "1" Failure
  • A Message string

SQL_Execute

MSSQL_OLEDB::SQL_Execute <query>
Excecutes a SQL query
<query> - SQL query to execute
Returns
  • "0" Success, "1" Failure
  • A message string

SQL_ExecuteScript

MSSQL_OLEDB::SQL_ExecuteScript <scriptfile>
Excecutes a SQL query contained in a file
<scriptfile> - Path to file containing the script to execute
Returns
  • "0" Success, "1" Failure
  • A message string

SQL_GetRow

MSSQL_OLEDB::SQL_GetRow
Retrieves a row of data from the SQL server
Returns
  • "0" Success, "1" Failure, "2" No more data to read
  • A string containing the row of data (each column is separated by a '|' char). A message in case if error or no more data

SQL_GetError

MSSQL_OLEDB::SQL_GetError
Retrieves last error message generated by SQL Server. Call this function after a failure to get SQL state, native error code and message
Returns
  • "0" Success
  • A string containing the error

SQL_Logout

MSSQL_OLEDB::SQL_Logout

Deallocates memory used by dll and logs out of SQL server.

Usage Example

detailprint "Loggin on to SQL server $SQLSERVER"
MSSQL_OLEDB::SQL_Logon "$SQLSERVER" "$SQLUSER" "$SQLPASSWORD"
pop $0
detailprint $0
pop $0
detailprint $0
MSSQL_OLEDB::SQL_GetError
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_Execute "$SQLQUERY"
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_GetError
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_GetRow
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_GetRow
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_GetError
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
setoutpath $PLUGINSDIR
FILE test.sql
MSSQL_OLEDB::SQL_ExecuteScript "$PLUGINSDIR\test.sql"
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_GetError
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_GetRow
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_GetRow
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_GetError
Pop $0
DetailPrint $0
Pop $0
DetailPrint $0
MSSQL_OLEDB::SQL_Logout

Credits

Written by Stefano Giusto [sgiusto@mmpoint.it]