Host

Description

If your DBMS supports it, specifies the workstation name when connecting to the database in PowerBuilder. The Host parameter lets you assign any 10-character label to identify the process you are about to create when you connect to the database. This label helps you distinguish your process from others running on the database server.

When to specify Host

You must specify the Host parameter before connecting to the database in PowerBuilder.

Applies to

ASE, SYC SAP Adaptive Server Enterprise

SNC SQL Native Client for Microsoft SQL Server

MSOLEDBSQL Microsoft OLE DB Driver for SQL Server

Syntax

Host='workstation_name'

Default value

None

Usage

For Adaptive Server, when you specify a value for Host, PowerBuilder sets the CS_HOSTNAME connection property to the workstation name you specify.

The value you specify for the Host parameter displays in the hostname column of the MASTER.DBO.SYSPROCESSES table in a SQL Server database. How you use the Host parameter depends on the design of your PowerBuilder application.

For example, many sites want to secure their production tables so that updates are possible only through a specific application. To do this, you can grant explicit authority to the PowerBuilder application but not to users. The application prompts the user for an authorization ID and password, verifies it, and then connects to the database through a single application login ID. Only this application login ID has authorization to update production tables.

In this scenario, you can use the Host parameter to store the name of the user running the application.

Examples

Example 1

To set the host name to Alan:

  • Database profile

    Type the following in the Workstation Name box on the Network page in the Database Profile Setup dialog box:

    Alan
  • Application

    Type the following in code:

    SQLCA.DBParm="Host='Alan'"

Example 2

You can use the Host and AppName parameters together to specify both the host name and the application name. To set the host name to Jane and the application name to Sales:

  • Database profile

    Type Jane in the Workstation Name box and Sales in the Application Name box on the Network page in the Database Profile Setup dialog box.

  • Application

    Type the following in code:

    SQLCA.DBParm="Host='Jane',AppName='Sales'"

Example 3

The Host name in the preceding examples is hard coded. You can get the name dynamically using the Windows GetComputerNameW function. There is no PowerScript equivalent for this function. Here is the external function declaration:

FUNCTION boolean GetComputerNameW(ref string cname,ref long nbuf) LIBRARY "Kernel32.dll" 

The following code in the Open event of the application uses an external function call to get the host name and set its value in the Host parameter. You must allocate sufficient space for the returned host name:

string ls_compname
long ll_buf
ll_buf=25

ls_compname=space(ll_buf)
GetComputerNameA(ls_compname, ll_buf) 

// Profile mysyb 
SQLCA.DBMS="SYC Adaptive Server Enterprise" 
SQLCA.Database="mydata" 
SQLCA.LogPass="mylogpass" 
SQLCA.ServerName="mysybsvr" 
SQLCA.LogId="mylogid" 
SQLCA.AutoCommit=False
SQLCA.DBParm="Host='" + ls_compname + "'" 

Connect using SQLCA; 

See also

AppName