Frequently Asked Questions
This section answers some of the questions that customers frequently ask.
Installation
PCC
Security
User Count, Session Count, Data In Use
Networking
Difficulty Accessing Data
ODBC and DDFs
Upgrading from Btrieve 6.15
Upgrading and Migration
DEMODATA Sample Database
How do I restore DEMODATA to its installation defaults?
1
2
In PCC, click File > New SQL Document or . (See To start SQL Editor for a new SQL query.)
The Select Database dialog appears.
3
Click DEMODATA in the list, then click OK.
SQL Editor appears as a new tab view in PCC.
4
Click File > Open.
5
For default locations of PSQL files, see Where are the PSQL files installed? in Getting Started With PSQL.
6
Click SQL >Execute All SQL Statements, press F10, or click .
DEMODATA.sql deletes the existing tables then recreates them using the installation defaults. The restored tables are empty (no data).
Any new tables that you have created as part of DEMODATA are not affected.
7
a.
b.
c.
For example, to load the data for the "Billing" table use the following command. The comma is the field delimiter in the file.
bdu demodata billing billing.sdf -t ,
*Note: The "-t ," parameter is required.
The BDU utility returns the number of rows of data that were loaded.
Miscellaneous
Installation
Frequently asked questions about installation.
Will I lose my data files if I uninstall my existing version of the product, or install a new version?
When you uninstall PSQL or install a new version of PSQL, your data files and DDFs are never affected. Even when PSQL System Analyzer archives PSQL files, or even if you have your data files in the same directory as PSQL files, your data files are not affected.
Why do I not see in PCC PSQL Explorer the “plug-in” product that I just installed or upgraded?
See Situations Requiring That You Clear PCC Cache.
What type of client install should I do?
If you are not sure, always select complete. This option performs a standard installation, which makes it easier to troubleshoot if problems occur.
How can I be sure what service pack level of client I am running?
If you are using PSQL v12, start Monitor or Maintenance, choose Help then About from the menu, and check the Build Level.
Is PSQL supported on a Terminal Server?
Support for both the Server and Workgroup engines on Terminal Server has been available since Pervasive.SQL 2000i, SP 4. Pervasive.SQL 2000i, SP 3 provided support for the Server engine. Pervasive.SQL 2000i, SP 2 provided supports only for the client software.
Can I install PSQL in a Failover environment? or
Can I install PSQL in a Clustering environment?
Yes. PSQL is cluster compatible with Microsoft Failover Clustering, Microsoft Cluster Service, and Linux Heartbeat. See the chapter High Availability Support in Advanced Operations Guide.
Can I install PSQL in a Load Balancing environment?
That is not supported at this time.
Can I install PSQL on a server running Btrieve v6.x or earlier?
No, you cannot run PSQL and Btrieve 6.x on the same computer at the same time.
How do I keep my Workgroup Engine from starting up automatically when I reboot?
You must remove it from the Windows Startup group. Check the operating system documentation for Startup.
PCC
frequently asked questions about PCC.
How do I start PCC on Linux or OS X?
Certain requirements must be met before you can start PCC. See Starting PCC on Linux or Starting PCC on OS X.
Security
Frequently asked questions about security.
When do I log in using an operating system user and password, and when do I log in using a database user and password?
This may seem confusing at first, but in fact there is only one rule: use a database login only after you have already successfully connected to the server and are attempting to access a database directly. Up until this point, you should use an operating system login.
For example, if you run Monitor or Configuration to work with a remote server engine, you are prompted for a password. In both cases, you must supply a user name and password for an operating system account that has administrative permissions on the remote system, or an account that is a member of Pervasive_Admin. This applies also when you are creating a new database.
Once you start to work with the data itself, then you must supply a database user and password, if prompted. If database security is turned off, then you would never need a database user name or password. In this case, you would only need an operating system user and password to perform administrative tasks, as noted in the preceding paragraph.
Why do I get a “log in failed” message when I have a Pervasive_Admin group defined or I have administrator rights?
The settings for the PSQL services can affect whether or not you have permission to log in to the machine where the database engine is running. The settings apply whether or not you use a Pervasive_Admin group. If you change the Log on as setting for a PSQL service to This account, you must change the user rights policy Act as part of the operating system for the account. Otherwise, remote log in fails.
For example, the Monitoring utility requires that you log in to the operating system on the machine where the database engine is running. You will receive a message that log in failed if the account specified for This account cannot act as part of the operating system.
Note that even the Administrator account requires that you set the user rights policy for Act as part of the operating system.
See Services Settings and Log In Authority for a complete discussion and the steps to change the user rights policy.
User Counts
frequently asked questions about user counts.
How do I authorize a User Count Upgrade?
Refer to the tasks discussed in the chapter License Administration.
How does a PSQL engine using the concurrent user license model keep track of how many people are accessing the data? If people access the data with two engines at the same time, what happens?
With the concurrent user license model, each license specifies a user count. A user count allows the specified number of computers to connect to the PSQL database engine concurrently. PSQL identifies machines by serial number, so all connections with the same serial number are recognized as coming from the same machine. A machine with multiple NICs, for example, is recognized as the same machine.
Each workstation that accesses PSQL as a client session counts as one user. Multiple applications on a single client computer are counted as one user, not separate users. Each Terminal Server session also counts as one user.
PSQL uses one user count for each unique incoming protocol from the same client computer session. If one application uses TCP/IP and another application uses SPX, two licenses are counted if both applications run on the same machine. If different address formats of the same protocol are used, only one user is counted. For example, if one application uses IPv4 and another uses IPv6, only one user is counted if both applications run on the same machine. IPv4 and IPv6 are just different address formats of the TCP/IP.
Only one engine is ever permitted to access data files at a time. The second engine to try to open the files gets locked out, because the engines open the data files in exclusive mode (non-file sharing) so that corruption cannot occur.
Does the Workgroup engine use concurrent or per-seat licensing?
Concurrent. Refer to Concurrent User License Model.
I am thinking of moving from a PSQL engine with concurrent user licensing to one with capacity-based licensing. How do I determine the appropriate size for my data use license?
Capacity Usage Viewer was designed for this purpose. Because it records both peak daily session use and peak daily data usage, you can see how much of each you use over time. You can use this information to make a reasonable determination of what license capacity size you need. Refer to Capacity Usage Viewer for information about how to access and use Capacity Usage Viewer.
Networking
frequently asked questions about networking.
How do I know which protocol I am using for communication? I can see other systems in Network Neighborhood but I can’t get to my data.
Start PSQL System Analyzer and click Next on the Welcome screen. On the following screen, check the box Test Network Communications and make sure all the other boxes are not checked. Click Next. In the following screen, cancel the selected protocols that you do not want to test. Click Browse to select the drive that you have mapped to the installation directory on the server. You must have a mapped drive; UNC names are not supported. Click Next to run the network tests. The results window tells you if there are any significant problems with your networking.
Difficulty Accessing Data
Frequently asked questions about accessing data.
I upgraded from Btrieve v6.x or earlier to PSQL v12. Now I get error messages telling me that a file is inaccessible when everybody else can get to it. What’s wrong?
Use PSQL System Analyzer to be sure that all components from previous versions of Btrieve or PSQL have been archived. Then, make sure your configuration settings are correct. Find the file pvsw.log and check for error messages indicating a status code 8505 or 8517. These status codes indicate that attempts were made to use a local Workgroup engine to read the data files. (Note that hexadecimal values in message strings written to pvsw.log are preceded by “0x” to distinguish them from decimal values.)
Start PCC (see Starting PCC on Windows in PSQL User's Guide). Right-click on Local Client then click Properties. Click Access. Ensure that the option Use Local MicroKernel Engine is not check marked and that Use Remote MicroKernel Engine is check marked.
I have files sitting on the server that are shared and yet PSQL cannot read them. What’s wrong?
How are the files shared? PSQL does not support mapping a drive letter using Redirected mapping under Microsoft, or using the hidden Admin share (C$) under Windows 32-bit platforms.
Make sure that users have appropriate operating system login credentials to access the file server.
Run PSQL System Analyzer and choose the Network Communications Test to be sure that you have proper connectivity.
I am using SQL queries to create a definition for an old table. The resulting record size is off. Why?
Starting with Pervasive.SQL 2000, fields that allow null values have an additional byte defined at the start of the field. This byte is the null indicator byte. You can work around this in one of two ways:
If you are using SQL statements to create a new table definition, enter the statement SET TRUENULLCREATE=OFF. For the remainder of your current session, any tables that you create will use the old record structure without the extra byte for each nullable column.
If you do not wish to use SQL statements, you can get the field sizes to align properly by creating all columns as not nullable.
I want to convert my data file version from 9 back to file format version 8, 7, or 6. How do I do this?
If the files you wish to convert are serviced by a remote Server or Workgroup engine, you must have Administrator permissions on the remote system in order to perform these tasks. You must also have a network drive mapped to the remote data files.
In PCC, right-click the server name where the data files are located then click Properties. Click Compatibility and set Create File Version to the file version to which you want to convert. Click OK. Click Yes to restart the engines. These changes result in new files created to be in the version selected.
Run the Maintenance utility then click Options then File Information Editor. Click Load Information and choose the data file that you want to convert. Click Create and specify the name of the new, empty data file you want to create with the older version format. Click OK to create the file. Close the File Information Editor window, but do not exit Btrieve Maintenance Utility.
From the menu, select Data then Copy. Enter the name of the source data file and the name of the target data file (your newly created file with the older version file format). Click Execute to copy the records into the older version file. After the copying has finished, if you need the new data file to have the same name as it did previously, save your original data file with a different name, then save your new file using the original file name.
ODBC and DDFs
Frequently asked questions about ODBC and dictionary files.
How can I tell if I can use ODBC to access my data files?
There are several ways to find out. First, look for .DDF files where the data files are located. If you see them, then most likely you can access the database using ODBC. Because it is possible to have DDF files located in a different directory, you should also use PCC to determine whether a database has been created for the data files you want to access. Finally, you can ask your application vendor whether their application uses ODBC to access the data files.
How can a hard-coded filepath in a DDF be changed?
In PCC, right click on the database to which the table belongs, then click Properties. Cl ick Directories. Change the value for Dictionary Location.
It may appear that the path has not changed. To confirm the change, open the X$File system table and look at the Xf$Loc field for the given user table. If you cannot see the system tables in PCC, expand System Objects.
You can also use the ALTER TABLE USING statement in SQL to change the data file used by a particular table. Refer to SQL Engine Reference for further information.
What is the best way to ensure that my data dictionaries (DDFs) are safe?
Always keep a backup copy of your DDFs. Anytime you make changes to the runtime DDFs, be sure to make a backup copy of the DDFs before making changes. If you are turning on database security for the first time, you should make a backup copy of the dictionaries without security, and a backup copy with security.
How can I tell whether I have non-standard DDFs?
If you can edit your DDFs with a Btrieve utility, it means that you do not have standard dictionary files. A standard dictionary file does not permit direct Btrieve access. This lock out is a safety feature that ensures only the Relational Engine can write to the dictionary. DDFs are very special files that must remain synchronized with each other and with the data files at all times.
Standard dictionaries do not have case sensitive table names or field names. That is, the column definitions for column Xf$Name in file.ddf and column Xe$Name in field.ddf have the Case flag set, meaning the values are case insensitive.
DDFs are Btrieve files and thus can be opened and viewed (not updated) using the Function Executor. This is one way to confirm the contents of file.ddf or field.ddf.
On some non-standard dictionaries, the DDFs file.ddf, field.ddf, and/or index.ddf do not exist. Such dictionaries do not work with our products. For example, if you see a file called x$file.ddf, instead of file.ddf, you can assume your DDFs are non-standard.
Non-standard DDFs are unlikely to work properly with PSQL Control Center or the relational engine.
Can I mix and match DDFs from different databases?
A complete set of DDF files must be considered a unit. No DDF file from one database may be intermixed with DDFs from a different database.
What happened to DDF Sniffer?
DDF Sniffer was added to the PSQL product line with the acquisition of Smithware in 1998. It is no longer available as a separate product. Its functionality has since been largely replaced by the PSQL Control Center and DDF Builder.
I have two similar Btrieve files, and I created a DDF for the first one. Since they are similar, can I use the same DDF on the second Btrieve file?
The answer depends on how similar the files are. If the two files differ only in the number of records, you can use the same DDF file. If there are any differences at all in the number, order, names, or types of fields or indexes, you cannot use the same DDF. In other words, you can only use the same DDF if the record structure of the two files is identical.
I have owner names set on my Btrieve files. After I created a DSN, I cannot open the files using ODBC. What’s wrong?
If Btrieve files have owner names on them, you must use database security for ODBC access. Turn on database security in PCC. See To turn on security using PSQL Explorer and Owner Names and Security in Advanced Operations Guide.
*Caution: Do not forget the Master user password. You cannot turn off security or perform administrative tasks within the database without it. You may want to make a backup copy of your DDFs before turning security on, in case you forget the password.
Next, you must grant the Master user access to the data files that have owner names defined. You can grant the access by issuing this SQL statement for each table that has an owner name:
GRANT ALL ON my_tableownername’ TO Master
When you enter the statement, substitute the actual name of your table and the appropriate owner name for that table, as indicated above. Remember that each data file corresponds to an ODBC table. If you don’t know which table corresponds to which data file, see use PCC to find out. Right-click on the table in PCC then click Properties. Click Information in the tree. The File Name field shows you the file that is referenced by that table definition.
If security is important, then you must create users and assign permissions for all users expected to access the database. You do this by using the CREATE GROUP and GRANT statements in SQL. You can also add users and groups with PCC. See Users and Groups in Advanced Operations Guide.
If security is not important to you, you can avoid creating many users and assigning privileges by granting access to PUBLIC, which means anyone on your network can access the data. You can use this statement:
GRANT ALL ON my_tableownername’ TO PUBLIC
Is there a client side requester for the Relational Engine?
There is no DOS requester support for SQL applications, but the PSQL Client software for Windows includes ODBC client components allowing you to connect to a remote server engine.
Is ODBC the only method of access for PSQL?
Definitely not! In addition to ODBC and the time-tested Btrieve API, you can also develop applications using our OLE DB provider, our JDBC driver, our pure Java interface, or our ActiveX controls.
Is there a single database file housing all the data, data definitions, stored procedures, security, table relationships, and so on as in some other products?
No. PSQL stores data in separate files, one file per relational table definition. The meta data, such as data definitions, user/group definitions, and so on, are stored in a set of DDF files, where each file ends in the extension “.ddf.”
Does the Relational Engine have scheduler capabilities to run stored procedures or other types of scripts designed to access and affect data?
The Relational Engine does not have a scheduler.
Upgrading from Btrieve 6.15
Frequently asked questions about Btrieve 6.15.
Is there a tool that replaces Xtrieve?
There is no direct replacement, but you should consider using Crystal Reports for Btrieve as an excellent upgrade from Xtrieve for reporting on and querying Btrieve data.
Upgrading and Migration
Frequently asked questions about upgrading and migration.
When I create a table using an existing Btrieve file, the wizard displays fewer columns than there are in the Btrieve file. What’s wrong?
Btrieve files contain a limited amount of information about the structure of the file. The table creation wizard can figure out some field definitions using the indexes, but after the indexes are exhausted, data segments may remain that contain more than one actual field. The wizard has no way of interpreting the contents. You must use your detailed knowledge of the record structure to split out these fields and build a table definition that matches all the fields in the record.
The procedure for this task is provided in Advanced Operations Guide.
Where can I find information on migration from earlier product versions to PSQL v12? Where can I find migration and compatibility information?
Getting Started With PSQL contains an entire chapter that provides detailed instructions on how to upgrade.
If your application uses Scalable SQL or ODBC, then you should review the Application Migration Guide available on the web site.
Miscellaneous
Frequently asked questions about miscellaneous topics.
I dumped Btrieve records to a file and now I can’t read the file. What happened?
If you use the Btrieve Maintenance Utility to save/dump the records, the resulting file contains the binary image of each record. Unless the record consists entirely of character data, it may not be readable to the human eye.
The only way that PSQL can dump a record in ASCII readable format, is by reading the DDFs to get a description of the total contents of the record. Btrieve only has the record length, the data type of indexes and length of the indexes. Btrieve does not have information on how to interpret the entire contents of the record.
How do I run PSQL in trace mode?
Server
You must have administrator privileges on the machine where the engine is located that you want to run in debug mode.
1
2
Click Debugging and set the value for Trace Operation to On.
3
You do not need to restart the engine.
See also Trace Operation in Advanced Operations Guide.
*Note: After tracing operations, you should turn off Trace Operation, making sure to click Edit > Apply when finished. You will notice slower performance if you run PSQL in trace mode.
Windows Client
Run the PSA network connectivity tests to verify network connectivity. See Test Active Installation Tasks. Also refer to the Knowledge Base, available at the PSQL website, for information about particular issues.
In addition, client tracing is available for troubleshooting certain types of low-level problems. Generally, low-level tracing is not required, so this type of tracing is intended for use by trained support staff. Your product vendor or PSQL Support will explain how to conduct low-level client tracing.
Does garbage collection occur in the data files and indexes? For example, is space from deleted records recovered or reused?
Yes, space from deleted records is re-used on subsequent inserts. Space in files is never de-allocated back to disk. If index balancing is turned on, unused space in index pages is also re-used. See Rebuild Utility Concepts in Advanced Operations Guide.
Is database shadowing available, allowing a complete up-to-date second copy of the database to exist on another drive or machine?
PSQL does not contain specific functionality for this, but many customers have successfully used hardware mirrored drive arrays and solutions like Vinca’s (now acquired by Legato) Standby Server to provide this functionality. Pervasive.SQL 2000i SP3 and later supports the data replication product, DataExchange.
What is the mechanism that allows the database to be backed up online? What happens if the server goes down in the middle of a backup with many open transactions?
Continuous Operations allows you to put a set of data files in a special “safe mode” so that they can be safely backed up while in use. While data files are in Continuous Operations mode, they are not modified, and special delta files store the results of any database operations. After the backup is complete, the data files must be removed from Continuous Operations mode, at which time the changes stored in the delta files are rolled into the live files.
If the server goes down while files are in continuous operations mode, the next time the data file is accessed, the database engine detects the existing delta file and rolls in the changes at that time.
You can put data files into Continuous Operations mode by using the BUTIL -STARTBU command or Maintenance utility described in Advanced Operations Guide.