Tool | Description | GUI Available | Windows | Linux | ||
---|---|---|---|---|---|---|
Server | Client | Server | Client | |||
Configures Zen components | Zen Control Center (see Configuration Reference in Advanced Operations Guide) | Yes | Yes | Yes | Yes | |
Imports data into a database | No | Yes | No | Yes | No | |
Monitors Zen activity | Monitor tool (see Monitoring in Advanced Operations Guide) | Yes | Yes | |||
Creates and administers database usernames and passwords | No | No | No | Yes | No | |
Repairs and manipulates data files | Maintenance tool (see Manipulating Btrieve Data Files with the Maintenance Tool in Advanced Operations Guide) | Yes | Yes | Yes | Yes | |
w64clilcadm (Windows 64-bit) clilcadm64 (Linux 64-bit) | Applies and administers user licenses. | License Administrator (see License Administration) | Yes | No | Yes | No |
w64clipaadm (Windows 64-bit) clipaadm64 (Linux 64-bit) | Phone authorization tool used to authorize product keys when an internet connection is unavailable. (Phone authorization only) | Phone Authorization Wizard opened by running guipaadm at a command prompt | Yes | Yes | Yes | Yes |
Finds and corrects data fragmentation, rebuilds indexes, removes unused space. | Defragmenter (see Monitoring Data File Fragmentation in Advanced Operations Guide) | Yes | No | Yes | No | |
Creates and administers named databases | No | No | No | Yes | No | |
Exports delimited data to a text file based on a SELECT statement | ZenCC (see Creating, Importing, and Exporting Data) | Yes | Yes | Yes | Yes | |
Creates and administers Engine DSNs on the server | No | No | No | Yes | Yes | |
Automates replication of records between databases | No | Yes | No | Yes | No | |
isql64 (Linux 64-bit) | Allows you to run SQL statements interactively and test connectivity to a DSN. | No | No | No | Yes | Yes |
w64licgetauth (Windows 64-bit) licgetauth64 (Linux 64-bit) | Transmits authorization request data and retrieves authorization key data. (Offline authorization only) | No | Yes | Yes | Yes | Yes |
Notification Viewer | Provides two interfaces: Notification area icons and a graphical user interface. Although not strictly a CLI tool, it is mentioned here for reference. | See Notification Viewer in Advanced Operations Guide. | Yes | No | Yes | No |
Manipulates Zen services | No | Yes | Yes | No | No | |
Configures Zen components by editing the Zen registry | No | No | No | Yes | Yes | |
Register Zen components | No | No | No | Yes | Yes | |
Specifies usernames and passwords for secure databases | Zen Control Center (see Zen Security in Advanced Operations Guide) | Yes | Yes | Yes | Yes | |
Processes SQL statements in a command file | Zen Control Center (see SQL Editor) | Yes | Yes | Yes | Yes | |
Specifies usernames and passwords for remote servers | No | Yes | Yes | Yes | Yes | |
Rebuilds MicroKernel data files. | Rebuild wizard (see Rebuild Tool GUI Reference in Advanced Operations Guide) | Yes | Yes | Yes | Yes | |
rbldcli_offline | Rebuilds MicroKernel data files. Same as rbldcli, but for use on systems where Zen is not installed. | No | N/A | N/A | N/A | N/A |
Column Delimiter | Indicated By |
---|---|
Tab | \t (default) |
Any single printable character (control characters are not printable, except null, tab, new line, and carriage return) | (*, A, t, l, and so forth) |
Row Delimiter | Indicated By |
---|---|
New line character | \n (default) |
Carriage return | \r |
Carriage return line feed (CR LF) | \r\n |
Parameter | Mandatory/Optional | Default Value | Description |
---|---|---|---|
database_name | Mandatory | Database name to connect to the local engine | |
table_name | Mandatory | Name of the table to be populated | |
data_file | Mandatory | Name and location of the delimited text file | |
-<e|E> max_errors | Optional | 0 (zero) The BDU exits when the first error is encountered. | The maximum number of errors that the BDU ignores before exiting |
-<r|R> reject_file | Optional | stderr | Name of the file to which to write the rows that failed load. The specified directory must exist. However, if the file does not exist in the specified directory, it will be created. |
-<f|F> first_row | Optional | Row 1 | The first row in the delimited text file with which the load begins. This parameter allows you to skip a header row. For example, if your header row is row 1, set first_row to 2. |
-<l|L> last_row | Optional | End of the source file | Last row in source file (row will be included in load). The load will stop after the end row has been loaded |
-<t|T> field_term | Optional | A character, such as a comma or tab character | Column delimiter in the source file |
-<n|N> row_term | Optional | A new line character | Row delimiter in the source file |
-<o|O> output_file | Optional | stderr | Name of the file to which to write the information and error messages during load. The specified directory must exist. However, if the file does not exist in the specified directory, it will be created. |
-<u|U> login_id | Optional | Username to connect to the Relational Engine | |
-<p|P> password | Optional | Password to connect to the Relational Engine | |
-<c|C> encoding | Optional | The system code page or "ASCII" if the system code page cannot be determined | The valid values for encoding are: • ASCII • UTF-8 • UTF-16LE • UTF-16BE The encoding parameter is not case sensitive and does not require quotes. See Examples. Note: If a data file contains a byte order mark (BOM), BDU uses the encoding specified by the BOM. That is, if a data file uses a BOM to indicate an encoding of UTF-8, UTF-16LE, or UTF-16BE, BDU uses that encoding regardless of what value you specify for the encoding parameter on the command line. If you provide an invalid value for encoding, the message returned is "Invalid value for command line argument 'file_encoding.'" |
-<h|H> | Optional | Displays the version of BDU and the usage help |
Constraint | Discussion |
---|---|
Any Referential Integrity (RI) error is considered an RI violation | Row is rejected |
Any unique or primary key violations | Row is rejected |
No value specified for a non-NULL column1 | Row is rejected regardless of column's default value |
No value specified for a nullable column1 | NULL inserted regardless of column's default value |
Table contains CLOB or BLOB columns (relational data types LONGVARCHAR, NLONGVARCHAR, or LONGVARBINARY) | BDU does not attempt to load data into the table and returns the message "The target table contains longvarchar, nlongvarchar, or longvarbinary data types. These data types are not supported." |
Order of rows | BDU treats the delimited data file as unordered. The original order of rows may not be preserved. |
Date fields | The only supported format is yyyy-mm-dd |
Time fields | The only supported format is HH:MM:SS |
Time stamp fields | The only supported format is yyyy-mm-dd HH:MM:SS.MS |
White space and column delimiters | No white space must exist between the column delimiters and the data values, even if the data values are enclosed in quotes. |
1 BDU is not aware of default values for a column defined during table creation or update |
-p | Specify the password. If this option is not specified, you will be prompted to enter the password. |
a+ | Gives administrator rights for this user. |
a- | Removes administrator rights for this user. |
-r | Remove username from btpasswd file. |
Add new database name | a -nDbname [-b] [-i] [-e] [-ldictpath] [-ddatapath] |
Delete database name | d -nDbname |
List database names | ldictpath [-a] |
Modify database security policy | m -nDbname -ssecuritymode |
Modify database code page | m -nDbname -c=codepage |
add, a | Add database name |
del, d | Delete database name |
list, l | List all database names |
modify, m | Modify database name, security mode, or code page |
-a | Show full details about dbnames in database list when you use the -l option |
-b | Create bound database |
-c=codepage | Set the database code page. Zero specifies the server default (-c=0). |
-ddatapath | Set data path |
-e | Do not create dictionary files for database |
-h | Show help |
-i | Enforce relational integrity on the database |
-ldictpath | Set dictionary path |
-nDBName | Set database name |
-ssecuritymode | Set Btrieve security policy for database. Valid choices are Classic, Mixed, Database. |
-v | Create a database using long metadata (V2 metadata) |
database | Database against which the SQL statement in selectfile is to be executed. It can be a database name or a server DSN. |
selectfile | Text file that contains the SQL statement to run against database. The file is read from the current directory or from a location using a path provided with the file name. Note: Unicode characters are not supported. If you use Unicode in the SELECT file, deu returns the error message: "Cannot connect to the designated server." |
resultsfile | Text file that contains the results of the SQL SELECT command. The file can be overwritten if it exists. By default, the user is prompted to overwrite unless the -o option is used. |
-c | Write column names in the first row of output, preceded by a hash character (#). Without this option, the default is no column names. |
-d fileencoding | Read the source file in the specified character encoding. Without this option, the default is the current operating system encoding. The code page name is not case sensitive. See Code Pages for Data Source. |
-e fileencoding | Write the results file in the specified character encoding. Without this option, the default is Windows-1252. The code page name is not case sensitive. See Code Pages for SELECT Results. |
-f fielddelimiter | Field delimiter character for SELECT results. Without this option, the default is a comma. |
-h | Show help. |
-l logfile | Write log messages to a file as well as standard output. Logfile is the name of the file to which message entries are logged. The file is written to the current directory or to a location using a path provided with the file name. |
-n portnumber | TCP port number where the database engine running on servername is listening. Without this option, port 1583 is the default used for the Relational Engine. |
-o | Without prompting, overwrite resultsfile if it exists. |
-s servername | Name of the server where the database is defined. Without this option, the local machine is the default. You may use an IP address. |
-u loginid | Name of a user defined for a database with security enabled. |
-p password | Password for the user identified by loginid. |
The following options are the most commonly used: | |
-db= | Name of the database (local or remote) to which the DSN is associated |
-dsn-name= | -dsn= | The data source name |
-help | Display syntax and options help for the dsnadd tool |
-l | List existing DSNs |
openmode=<0|1|-1|-4> | -omode=<-0|1|-1|-4> | Specify the default file open mode for files opened with the current connection. The default is 0, or Normal. Can be used only with local connections, not remote client connections. For more information on file open modes, see DSN Open Mode in ODBC Guide. |
-srv-host= | -host= | Server host name |
-srv-port= | -port= | Server port number. The default is 1583. (See also Changing the Default Communication Ports in Getting Started with Zen.) |
-translate=< none | auto > | Encoding translation to use for character data. The default is none, meaning that no character data is translated between the client and server on the assumption that the client and server use the same operating system encoding. See Automatic in ODBC Guide. |
The following options are used to create deprecated, legacy-style DSNs: | |
-clntdsn | Create a deprecated, legacy-style Client DSN with the driver description Pervasive ODBC Client Interface. Rather than using Client DSNs, new applications or revised 32-bit applications should create a DSN that connects to a named database using -db=. |
-engdsn | Create a deprecated, legacy-style Engine DSN with the driver description Pervasive ODBC Engine Interface. Rather than using Engine DSNs, new applications or revised 32-bit applications should create a DSN that connects to a named database using -db=. |
-sdsn= | For use with deprecated, legacy-style Client DSNs. Name of an Engine DSN on the server. |
The following options are typically used only for application development and testing: | |
-drv-desc= | dsnadd handles the driver descriptions based on the absence or presence of the -db, -clntdsn and -engdsn options. If specified, must be one of the following: • Pervasive ODBC Interface • Pervasive ODBC Client Interface • Pervasive ODBC Engine Interface |
-drv-path= | -drv= | The location of the driver libraries. The default is /usr/local/actianzen/lib:$HOME/lib. |
-dsn-desc= | -desc= | dsnadd provides a default DNS description in odbc.ini. If you want to override the default description, use this option to specify a descriptive string of your choosing. If the descriptive string contains the space character, you must quote the entire string with double quotes. |
-odbc-ini= | -ini= | ODBC.ini file name (for example, /usr/local/actianzen/etc/odbc.ini) |
ODBC Driver Description in INI Files | Driver Library Installed With | Behavior for All Products Installed With |
---|---|---|
Pervasive ODBC Engine Interface | Server 64-bit Server 32-bit (Linux only) | • Installation assigns an ODBC driver in odbc.ini for compatibility with preexisting Engine DSNs • Connects to a local named database • No longer created by default with dsnadd (the -engdsn option must be specified) • Visible when viewing Engine DSNs in ODBC Administrator running on a Windows client • For use by 32-bit applications that are already coded to use Engine DSNs • 32-bit Engine DSNs are deprecated on Linux. |
Pervasive ODBC Client Interface | Server 64-bit Server 32-bit (Linux only) Client 32-bit (Linux only) | • Installation assigns an ODBC driver in odbc.ini for compatibility with preexisting Client DSNs • Connects to a local or remote named database or an Engine DSN • For use only by 32-bit applications that are already coded to use Client DSNs • No longer created by default when -host is specified with dsnadd (the -clntdsn option must be specified) • 32-bit Client DSNs are deprecated on Linux. |
Pervasive ODBC Interface | Server 64-bit Client 64-bit | • Installation assigns ODBC drivers in odbcinst.ini for use by new 32-bit and 64-bit DSNs • Connects to a local or remote named database • The recommended driver description to use for 32-bit and 64-bit applications • Created by default with dsnadd • Not visible as Engine DSNs in ODBC Administrator running on a Windows client. |
Question | Answer |
---|---|
What do I need to do about DSNs if I port my 32-bit application to 64-bit? | If the application uses DSN-less connections that connect using Pervasive ODBC Client Interface, change the ODBC driver description to Pervasive ODBC Interface. If the application uses DSNs, you must create new DSNs that connect to a named database. |
What is a DSN-less connection? | A DSN-less connection is one that connects to a named database using the ODBC driver Pervasive ODBC Client Interface (for preexisting 32-bit applications) or the Pervasive ODBC Interface driver (for 32-bit or 64-bit applications). |
Can I still create deprecated, legacy-style Engine DSNs and Client DSNs? | |
If I am using ODBC Administrator on a Windows client, why do I not see my DSNs? | On 64-bit Windows operating systems, 64-bit system DSNs are distinct from 32-bit system DSNs because of the registry design. If you are using the 64-bit ODBC Administrator, you will not see the 32-bit system DSNs, and vice versa. |
What if my application uses DTI to manage DSNs? | The DTI functions for DSNs manage only 32-bit Engine DSNs. Therefore, the DTI functions for DSNs are deprecated along with the 32-bit Engine Interface ODBC driver. An alternative to using DTI to manage DSNs is to use SQL and ODBC statements. For example, you could use CREATE DATABASE to create a named database and SQLConfigDatasource to configure the DSNs. |
Going forward, is there a recommended strategy for ODBC connections? | Yes. New applications or revised 32-bit applications, local or remote, should connect to a named database. |
Parameter | Optional? | Description |
---|---|---|
config_file | No | Path name of the JSON configuration file to be executed. |
-e | Yes | Encrypt owner names, usernames, and passwords in the configuration file. |
-o | Yes | Run the configuration file only once instead of repeating until canceled. |
-s | Yes | Print a sample configuration file with usage information. |
-h | Yes | Command line help. |
Element | Default | Description |
---|---|---|
version | 1 | For future backward compatibility |
polling_interval_sec | 30 | Frequency of checking a file for new data, in seconds |
log_file | ./easysync.log | Path and file name of log file |
resume_on_error | true | Determines whether to continue synchronizing files after an error |
source_file | — | Required. Source file absolute path or BTRV URI |
source_owner_name | — | Owner name, if used |
source_username | — | Username, if used |
source_password | — | Password, if username is used |
destination_file | — | Required. Destination file absolute path or BTRV URI |
destination_owner_name | — | Owner name, if used |
destination_username | — | Username, if used |
destination_password | — | Password, if username is used |
unique_key | — | Required. Unique key number existing in both source and destination files to use to find the destination file record to update based on a source file update |
create_destination | false | If true, creates file if it does not exist |
_last_copied_record_timestamp | 0 | Maintained by easysync. Time stamp of the last record copied from the source file, based on the update sysdata2 time stamp. Can be manually set to initiate synchronizing at a chosen time. If not specified, a zero time stamp is assumed, and every record in the source file is copied to the destination file. |
_last_existing_transaction_time | — | Maintained by easysync. A time value to help determine whether an older existing transaction is causing failed synchronizations |
_last_file_timestamp | — | Maintained by easysync. A time value to help determine whether new data exists in a file but synchronization is failing. |
-b | Suppress prompts for batch processing. See Notes. |
-c | Display column names on first row (use with -d) |
-dx | Delimit columns with character x. |
-llocnname | Set locale to locname. |
-mn | Limit column display width to n characters. |
-v | Display verbose explanations for errors and warnings. |
--version | Display version of unixODBC in use. |
-w | Wrap results in an HTML table. |
-x0xHH | Delimit columns with HH, where x is in hex. For example, 0x09 is the tab character. |
sql-statement | A valid SQL statement to execute against the database to which isql or isql64 is connected. |
help [tablename] | Display column information. The output is the same as for the dbo.fSQLColumns catalog function. See dbo.fSQLColumns in SQL Engine Reference. If tablename is omitted, the output is for all tables in the database, including system tables. |
quit | Exits interactive mode. |
output_filename.ath | The name for the authorization output file. |
start | Starts a Zen service |
stop | Terminates the running of a Zen service |
restart | Terminates the running of a Zen service then starts the service running again |
query | Specifies whether servicename is running or not |
getpolicy | Retrieves the type of startmode (automatic, manual, or disabled) associated with servicename |
setpolicy | Sets the type of startmode (automatic, manual, or disabled) associated with servicename |
automatic | The service starts automatically when the operating system starts |
manual | The service must be started manually after the operating system starts |
disabled | The service is disabled and does not start after the operating system starts |
String | Value |
---|---|
BTI_SERVICE_ACCESS_DENIED | 32775 |
BTI_SERVICE_ALREADY_RUNNING | 32778 |
BTI_SERVICE_CANNOT_ACCEPT_CTRL | 32779 |
BTI_SERVICE_CONTINUE_PENDING | 32772 |
BTI_SERVICE_DATABASE_LOCKED | 32780 |
BTI_SERVICE_DEPENDENCY_DELETED | 32783 |
BTI_SERVICE_DEPENDENCY_FAIL | 32784 |
BTI_SERVICE_DISABLED | 32782 |
BTI_SERVICE_DOES_NOT_EXIST | 32785 |
BTI_SERVICE_DUP_NAME | 32776 |
BTI_SERVICE_EXISTS | 32786 |
BTI_SERVICE_INVALID_CTRL | 32789 |
BTI_SERVICE_INVALID_NAME | 32777 |
BTI_SERVICE_MARKED_FOR_DELELE | 32790 |
BTI_SERVICE_NOT_ACTIVE | 32787 |
BTI_SERVICE_PAUSE_PENDING | 32773 |
BTI_SERVICE_PAUSED | 32774 |
BTI_SERVICE_REQUEST_TIMEOUT | 32788 |
BTI_SERVICE_RUNNING | 32771 |
BTI_SERVICE_START_PENDING | 32769 |
BTI_SERVICE_STOP_PENDING | 32770 |
BTI_SERVICE_STOPPED | 32768 |
-key | Get the key value. If -value is not specified, then the entire key contents are displayed. To view all subkeys, specify -r (for recursive). |
-set -key | Set the key value. If -value is not specified, the default value will be set. VALUE must be appropriate to the TYPE specified. PS_REG_STR is assumed if -type is not specified. |
-delete -key | Delete the specified key or value. If -value is not specified, then the entire key and all subkeys are deleted. |
-export -key | Export the given key, including all values and subkeys to standard output or to the named file. |
-import [-file filename] | Import keys and values from either the standard input or from the named file. |
-s | Silent. Do not print any status or error messages. |
-u | Unregister. If not specified, register is assumed. |
-f file | Specifies a text file with PCOM modules listed one per line. |
filename | Specifies a single PCOM module to register. |
database | Database in which the username is defined (this can be a database name or a server DSN) |
username | The user whose password will be changed. |
password | The current password for the user. You must provide the original password in order to modify it. You can either provide the password as a parameter or omit it and be prompted. |
newpassword | The new password for the user. See Identifier Restrictions in Advanced Operations Guide for password restrictions. Note: If the new password begins with a nonalphabetic character, the password must be enclosed in single quotes. If the existing password begins with a non-alphabetic character, do not enclose it in single quotes (see examples). |
-server name | Optional. Server name on which the database is defined. If you do not specify this option, the local machine is assumed |
-port number | Optional. TCP port on which the SQL engine running on servername is listening. If you do not specify this option, the default port 1583 is assumed. See also Changing the Default Communication Ports in Getting Started with Zen. |
database | Database against which the SQL statements in commandfile are to be executed. This can be a database name or a server DSN. |
commandfile | Text file that contains the SQL statements. Certain categories of SQL statements, such as data definition language, are better suited for use in the command file. Contrast this with a data manipulation statement such as SELECT. A SELECT statement can be used, but the result set is not returned to standard output. You need a separator character between each command in your command file. See -separator character. Note: Pvddl does not support Unicode characters. If you use Unicode in the command file, pvddl returns the error message: "Cannot connect to the designated server." |
-separator character | Character used in commandfile to separate SQL statements. The valid choices are any printable character. However, ensure that character does not occur within any of the SQL statements. Common character choices include the pound sign (#), semicolon (;), and at sign (@). Note: On Linux, a semicolon separator must be enclosed in single quotation marks. If not, then only the first pvddl statement in commandfile runs successfully. The rest of the statements appear to run without error but are unsuccessful. |
-username username | Name of a user defined for a database with security enabled. |
-password password | Password for the user identified by username |
-server servername | Name of the server on which the database is defined. If you do not specify this option, the local machine is assumed. You may also specify the IP address of the server. |
-port number | TCP port number on which the database engine running on servername is listening. If you do not specify this option, the default port 1583 is assumed. (Port 1583 is the default port used for the Relational Engine.) |
-stoponfail | Stop when the first SQL error is encountered in commandfile. Pvddl returns an error code of PS_E_FAIL if an error is encountered (which equates to -2147467259 decimal). The default action is for pvddl to continue after a SQL error is encountered. |
-log logfile | Write output to a file instead of to standard output (stdout). Logfile specifies the name of the file to which output is logged and, optionally, a path to the file. If path is omitted, logfile is created in the same directory in which dvddl resides. |
-a | Adds a server entry for a user specified by the -u parameter. If no user is specified, current user is assumed. |
-d | Displays the list of configured servers. The configured servers will display in two groups that are separated by a dashed line. The ones above the line are global entries and are only viewable by administrators who are a member of group zen-data. The ones below the line are the current user's entries. If you have a global and a user entry for the same server, the user's entry overrides the global. |
-g | Manipulates default settings for all users. Settings created with -g can be overridden by individual users. |
-m | Modifies a server entry for a user specified by the -u parameter. If no user is specified, current user is assumed. |
-p | Specifies the password for the user. If not provided, pvnetpass prompts for a password. |
-r | Removes a server entry for a user specified by the -u parameter. If no user is specified, current user is assumed. |
server | Server, local or remote, to which you want to add a connection entry. Server can be '*' (include the single quotes) to set the default server entry information. This default entry is used when there is no user entry for the server. |
-u | Specifies the name of the user. If -u is not specified, your current username will be used. |