MSSQL OLEDB plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
Line 54: Line 54:
;Excecutes a SQL query contained in a file
;Excecutes a SQL query contained in a file
:<scriptfile> - Path to file containing the script to execute (max 60000 bytes)
:<scriptfile> - Path to file containing the script to execute (max 60000 bytes)
   
                Note: The scriptfile can be in Ansi or Unicode format
 
;Returns:     
;Returns:     
:*"0" Success, "1" Failure
:*"0" Success, "1" Failure
:*A message string
:*A message string
               
 
=== SQL_GetRow ===
=== SQL_GetRow ===



Revision as of 09:46, 11 September 2007

Author: sgiusto@mmpoint.it (talk, contrib)


Download

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

Supported on: Windows NT, Windows 2000, Windows XP.

Notes

All functions must be called with the /NOUNLOAD switch Only SQL_Logout must be called as last and without /NOUNLOAD

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 (max 60000 bytes)
               Note: The scriptfile can be in Ansi or Unicode format 
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. Use this function WITHOUT the /NOUNLOAD switch when finished using the plugin

Usage Example

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

Credits

Written by Stefano Giusto [sgiusto@mmpoint.it]