Lianja ODBC Manager on Windows

From Lianjapedia
Revision as of 12:30, 28 January 2013 by Yvonne.milne (Talk | contribs)

Jump to: navigation, search

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

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.
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.



Background Scripts

File:BackgroundScripts.png
Background Scripts tab

The Background Scripts tab allows for the creation, modification and configuration of background service scripts. 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.

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.

Template Background Script

//============================================================================
//
// 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()))

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).