want to read a pervasive ddf with without connecting to PCC

Posted on 2009-04-05
Last Modified: 2013-12-25
There is a file.ddf
Is there a way to read it to a datagrid?
I want to basically be able to point to the file and open it
this is so we can verify the path to the .dat files
the paths are hardcoded
Also since we use the ddf files to setup the dsn
This has to be able to open the file.ddf with no dsn
Question by:hainansyndrome
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
LVL 18

Expert Comment

ID: 24074321
I'm not exactly sure what you are looking for.  
FILE.DDF is strictly used by the relational engine for ODBC, OLEDB, ADO.NET, JDBC, and ActiveX to link a logical table name to an underlying MKDE data file.  

You can use the Btrieve API to access an underlying data file without the DDFs.  How you do that depends on the programming language you are using.  


Author Comment

ID: 24076474
Allow me to clarify.
I am attempting to write and app that will let me view the file.ddf even on a pc with you pervasive installed.I simply want to be able to see the path info to the .dat files in the ddf
LVL 18

Expert Comment

ID: 24076757
You have to have the Pervasive engine installed in order to read any Btrieve data file.  
What version of Pervasive/Btrieve are you using?  
There are ways of getting the information you are looking for.  
For example, if you already have an ODBC DSN, you can issue a "Select * From X$FILE" to get all of the information including the path in the DDF.  
If you are using a later version of PSQL (PSQL 2000i, V8, V9, or V10), you can use DTI (Distributed Tuning Interface) or DTO (Distributed Tuning Object) to get the list of tables and paths from a Database Name.
As a last option, you can use the Btrieve API to open and read the FILE.DDF.  The structure is subject to change though.  I've done this in my DDF Path Fixer program.  
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.


Author Comment

ID: 24076826
let me give you more back ground

our techs are having to get connected to our customers servers to create an engine dsn

the pervasive software is not ours, we partner with this other company.
I am trying to avoid the techs fidling with making dsn's with wrong ddf's

so i am trying to figure a way to validate the ddf's first.
LVL 18

Expert Comment

ID: 24077031
The best thing I can suggest would be to create the DSN with the existing DDFs and then validate the tables using PCC or ODBC Test or the application.  

I'm not really sure of a way to validate the DDFs without actually opening them and reading them.  

There really should only be one set of DDFs per data set.  If you've got a third party application that stores it's data and DDFs in the same directory, it's pretty safe to assume that the DDFs are correct for the data.  If you've got a different directory structure, you might have to develop a pattern to look for (data in "data" and DDFs in a "ddf" directory both under the application's directory for example).
LVL 28

Expert Comment

by:Bill Bach
ID: 24077471
If you want to just check on the information contained within the DDF's, and you have the Pervasive engine available, then you can use Goldstar Software's FPRINT tool.  (   This tool has a free trial period, and it allows you to print out (to the screen or to a text file for printing) the contents of the DDF's very easily, without creating a named database first.  To JUST check the file information, try using "FPRINT * /B" to print the Btrieve file data for each table.

Of course, this only displays the contents of the DDF's -- it does not validate them.  I'm assuming that you're wanting to check for the presence of the proper fields and such.  In that case, use FPRINT /A to get *all* details out of the DDF's.

Note: If the DDF's are built with PSQLv10 and use V2 metadata (PVFILE.DDF instead of FILE.DDF), try getting FPRINT2 instead.

Author Comment

ID: 24077550
I have a 3rd party app, that tells me the info
problem is our techs never read our documentation and they have messed up 3 or 4 customers pervasive install. they get in a hurry and anything that is more than a point and click is not followed
i wanted to write an app that reads the ddf files
then validate that the dsn that they make works later

i figured a first step is to allow them to read the contents of File.ddf
This is me trying to avoid a situation where I am having to clean up after people
LVL 28

Accepted Solution

Bill Bach earned 250 total points
ID: 24077760
Sounds like you need new techs, not a new process.

You can do everything that you want through an application.  In fact, FPrint is an application that works at the Btrieve level.  You can then use the same application to access the Distributed Tuning Interface (DTI) or Distributed Tuning Objects (DTO) to automatically create a new named database based on that information.

With the careful use of a Btrieve application AND some simple VBScript code to access the DTO, it is also possible to create an application like what you want -- one that automatically creates DBNames for an application in the correct location.  I did it for contract work for one client.  It was similar to what you wanted, but it was reading data from an INI file, not the FILE.DDF file, IIRC.  It does show that an automated process is possible, though...

Author Comment

ID: 24077801
I agree we need new techs, but what are you gonna do,
I will give your idea a shot and see if it meets our needs
thanks for the assist

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Exchange 2013 tmp files 3 62
Database ERD 4 83
Is it possible to create a report that displays pictures in a grid format? 5 29
CentOS Backup Options 3 20
Never store passwords in plain text or just their hash: it seems a no-brainier, but there are still plenty of people doing that. I present the why and how on this subject, offering my own real life solution that you can implement right away, bringin…
Recently, Microsoft released a best-practice guide for securing Active Directory. It's a whopping 300+ pages long. Those of us tasked with securing our company’s databases and systems would, ideally, have time to devote to learning the ins and outs…
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question