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.

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

Applies to

Syntax

Host='workstation_name'

Default

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:

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:

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