Difference between revisions of "Lianja ODBC Manager on Windows"

From Lianjapedia
Jump to: navigation, search
Line 43: Line 43:
 
[[{{ns:file}}:ConnectionInformation.png|150px|thumb|left|Connection Information tab]]
 
[[{{ns:file}}:ConnectionInformation.png|150px|thumb|left|Connection Information tab]]
  
Note: The Lianja SQL Server (includes Lianja ODBC Driver) and Lianja ODBC Driver product distributions come with a fully-configured DSN to the southwind sample database on the local machine.
+
Note: The Lianja SQL Server product distribution, which includes the Lianja ODBC Driver, comes with a fully-configured DSN to the southwind sample database on the local machine.
  
 
<br clear=all>
 
<br clear=all>
Line 67: Line 67:
 
===Settings===
 
===Settings===
 
[[{{ns:file}}:DSNSettings.png|150px|thumb|left|Settings tab]]
 
[[{{ns:file}}:DSNSettings.png|150px|thumb|left|Settings tab]]
The Background Scripts tab allows for the creation, modification and configuration of background service scripts.
+
Additional optional settings can be configured here.
Background service scripts can be used to perform data transformation, data synchronization or any other custom operation on your data that you require in your Apps.
+
 
+
Background service scripts run with no UI.  They are primarily used to perform data collection tasks or batch job tasks such as checking for new or updated data and emailing out notifications to Lianja users.  Typically a background service will sleep for a period of time and then repeat its work.  Background service scripts have the standard program extensions of prg/dbo and reside in the services sub-folder of the Lianja SQL Server root (see Settings above for default folders).  Whenever the Lianja SQL Server service is started, any programs in the services folder with their Startup Mode set to Automatic will be run.
+
 
<br clear=all>
 
<br clear=all>
  
Line 96: Line 93:
 
|}
 
|}
  
===Template Background Script===
+
===Logging===
<code lang="recital">
+
[[{{ns:file}}:Logging.png|150px|thumb|left|Logging tab]]
//============================================================================
+
//
+
// FILE        :   example.prg
+
//
+
// PURPOSE      :  Example code for a Lianja background service script on Windows.
+
//
+
//----------------------------------------------------------------------------
+
//
+
// Background service scripts are called with two parameters:
+
//
+
// script      :  full path name of the script
+
// action      :  Either "start", "stop" or "restart"
+
//
+
//-----------------------------------------------------------------------------
+
//
+
// Functions
+
//
+
// start()      :  Called when the service is started. Creates a
+
//                  filename.active and processes all actions while this
+
//                  file exists.
+
//
+
// stop()      :   Removes the filename.active file so the service will
+
//                  stop when it next wakes up to do any work.
+
//
+
// doWork()    :  This is the place to add your main processing code.
+
//
+
//============================================================================
+
 
+
//-----------------------------------------------------------------------------
+
// declare global variables
+
//-----------------------------------------------------------------------------
+
public p_active_file
+
public p_error_file
+
public p_sleep_seconds
+
 
+
//-----------------------------------------------------------------------------
+
// Start action
+
//-----------------------------------------------------------------------------
+
function start( )
+
    // Check to see if a ".error" file already exists for this script
+
    // and delete it if it does.
+
    if file(p_error_file)
+
        erase &p_error_file
+
        if file(p_active_file)
+
            erase &p_active_file
+
        endif
+
    endif
+
 
+
    // Check to see if a ".active" file already exists for this script
+
    // and return if its already active
+
    if file(p_active_file)
+
        return .f.
+
    endif
+
 
+
    // Create the ".active" file for this script
+
    fp = fcreate(p_active_file)
+
    if ferror() = -1
+
        return .f.
+
    else
+
        fclose(fp)
+
    endif
+
 
+
    // process any work for this script
+
    do while file(p_active_file)
+
        sleep p_sleep_seconds
+
        doWork()
+
    enddo 
+
return .t.
+
 
+
//-----------------------------------------------------------------------------
+
// Stop action
+
//-----------------------------------------------------------------------------
+
function stop( )
+
    // Erase active file so service will stop
+
    erase &p_active_file
+
 
+
    // return result
+
    if file(p_active_file)
+
        rc = .f.
+
    else
+
        rc = .t.
+
    endif
+
return  rc
+
 
+
//-----------------------------------------------------------------------------
+
// error handler
+
//-----------------------------------------------------------------------------
+
function errorHandler( )
+
    on error
+
    save error to &p_error_file
+
    stop()
+
return
+
 
+
//-----------------------------------------------------------------------------
+
// function to handle the requested script action
+
//-----------------------------------------------------------------------------
+
function handle_action(action, sleepTime, scriptName)   
+
    // Setup exit handler
+
    on finish stop()
+
 
+
    // Setup error handler
+
    on error errorHandler()
+
 
+
    // by convention we use files prefixed by the script name and postfixed with
+
    // .active and .error to keep us informed of the script execution status
+
    p_active_file = lower(basename(left(scriptName, at(".", scriptName) -1)+".active"))
+
    p_error_file = lower(basename(left(scriptName, at(".", scriptName) -1)+".error"))
+
    p_sleep_seconds = sleepTime
+
 
+
    // Change the default directory as thats where the .active status file is written
+
    set default to "C:\Lianja\sqlserver\services"
+
   
+
    // handle the specified action
+
    do case
+
        // Start service
+
        case upper(action) = "START"
+
            result = start()
+
 
+
        // Stop service
+
        case upper(action) = "STOP"
+
            result = stop()
+
 
+
        // Restart service
+
        case upper(action) = "RESTART"
+
            stop()
+
            result = start()
+
 
+
        // Unknown command
+
        otherwise
+
            result = .f.
+
    endcase
+
return result
+
 
+
//-----------------------------------------------------------------------------
+
// this is the function that will be executed by this script to handle its work
+
//-----------------------------------------------------------------------------
+
function doWork( )
+
 
+
    // TODO: add your own custom code here
+
 
+
return
+
  
//-----------------------------------------------------------------------------
 
// Call the Lianja background service script action handler
 
//-----------------------------------------------------------------------------
 
return (handle_action(_para1, 10, procname()))
 
</code>
 
  
 
==Windows ODBC Administrator==
 
==Windows ODBC Administrator==

Revision as of 12:39, 28 January 2013

See Also

Lianja SQL Server Manager, SQL System Tables

The Lianja ODBC Manager

The Lianja ODBC Manager allows you to create, edit and delete Lianja ODBC data sources. It can be accessed from its desktop shortcut or from the Windows Start Menu under Lianja.

Start Menu

User Account Control

If you have User Account Control enabled, please click Yes on the UAC dialog displayed when you run the Lianja ODBC Manager. On Windows XP, please run the Lianja ODBC Manager as the Administrator.

Lianja ODBC Data Source Manager

Lianja ODBC Data Source Manager

The Lianja ODBC Data Source Manager displays your currently configured data sources:

  • Data Source Name (DSN)
  • Type (System, User, File)
  • Description

The buttons give you access to the following operations:

Operation Description
Delete Delete the currently selected DSN.
Add Configure a new DSN.
Edit Configure the currently selected DSN.
Close Close the Lianja ODBC Manager.

Choosing either of the Configure operations displays the Lianja DSN Configuration dialog.

Lianja DSN Configuration

The Connection Information tab contains all the standard configuration details. The optional Settings and Logging tabs are for optional settings.

Connection Information

Connection Information tab

Note: The Lianja SQL Server product distribution, which includes the Lianja ODBC Driver, comes with a fully-configured DSN to the southwind sample database on the local machine.


The following settings can be configured:

Setting Description
DSN Unique data source name.
Description Description of data source.
Server Host name or IP address of Lianja SQL Server.
User User name of valid account on the server. For the local server, this can be '?'.
Password Password for the above account on the server. For the local server, this can be '?'.
DATABASE or DIRECTORY DATABASE: The name of the database on the server. DIRECTORY: The directory path where free tables are stored.

Settings

Settings tab

Additional optional settings can be configured here.

Section Item Description
Scripts Script Script name
Status Service status: Stopped, Started
Startup Mode Service startup mode: Manual, Automatic.
Buttons New... Create a new script.
Edit... Edit the selected script.
Delete Delete the selected script.
Mode (Automatic or Manual) Toggle the startup mode of the selected script between Automatic and Manual.
Refresh Refreshes the display
Status (Started or Stopped) Toggle the status of the selected script between Started and Stopped.

Logging

Logging tab


Windows ODBC Administrator

File:ServiceManager.png
Service Manager tab

Lianja ODBC data sources can also be managed using the Windows ODBC Administrator. Please note that on 64 bit systems, the 32 bit ODBC Administrator should be used (%windir%\SysWOW64\odbcad32.exe).