home *** CD-ROM | disk | FTP | other *** search
- Btrieve Users:
-
- DOWNLOAD FILE DDF.ZIP FROM Lib 15
-
- All you need to know about DDF files
- ------------------------------------
-
- All DDF files are Btrieve files. VB3's new data access methods and
- control and MS ACCESS need only two files, namely, FILE.DDF and FIELD.DDF.
-
- First three records of FILE.DDF are used to identify three files, i.e.,
- FILE.DDF, FIELD.DDF and INDEX.DDF (not use by VB3 or ACCESS).
-
- First seventeen records of FIELD.DDF are to identify seventeen fields.
- 5 fields of FILE.DDF, 8 fields of FIELD.DDF and 4 fields of INDEX.DDF.
-
- YOU DO NOT NEED INDEX.DDF FILE TO USE BTRIEVE TABLES WITH VB3 OR ACCESS.
-
- A. FILE.DDF, Record Length : 97
- ----------------------------
-
- File Name: X$File (as it appears in the first record of FILE.DDF)
-
- Fld Field Name Type Size
- 1 Xf$ID Integer 2 <-File ID Starting from 1 (Unique)
- 2 Xf$Name String 20 <-FileName
- 3 Xf$Location String 64 <-File Location
- 4 Xf$Flags Integer 1 <- =16 for 1st 3 files, =0 for your files
- 5 Xf$Reserved String 10 <-Reserved
-
-
- Key Type Field Size Order
- 0 Unique 1 Xf$ID 2 Ascending
- 1 Unique 2 Xf$Name 20 Ascending
-
- NOTES:
-
- 1. Field values of the first three records of FILE.DDF are:
-
- Xf$ID Xf$Name Xf$Loacation Xf$Flags Xf$Reserved
- ----- -------- ------------ -------- -----------
- 1 X$File file.ddf 16 BLANK
- 2 X$Field field.ddf 16 BLANK
- 3 X$Index index.ddf 16 BLANK
-
- For your Btrieve Tables (files), start assigning Xf$ID from 4.
-
- 2. Xf$Name field is the value you assign to Data1.RecordSource property
- or use it in an SQL statement, e.g. 'baseball teams', 'Titles'. It is
- a descriptive name (NOT A DOS FILE NAME). Make sure to use a unique
- name for each entry you make for your Btrieve Table in FILE.DDF
- (starting from 4). VB3 uses these names to show you a DROP DOWN list
- when you click on the 'three dots' of the .RecordSource property of a
- Data Control.
-
- 3. Xf$Location is the complete drive id + path + file name of your
- btrieve file. Since Xf$Name is UNIQUE, VB3 can automatically use
- this field to locate the Btrieve Table (file) you are trying to
- access using Data Control or VB3 Data Access functions.
-
- B. FIELD.DDF, Length : 32
- ----------------------
-
- File Name: X$Field (as it appears in the second entry of FILE.DDF)
-
- Fld Field Name Type Size
- 1 Xe$Id Integer 2 <- Field ID starting from 1 (Unique)
- 2 Xe$File Integer 2 <- File ID (Xf$ID in FILE.DDF)
- 3 Xe$Name String 20 <- Field Name (May have duplicates)
- 4 Xe$DataType Integer 1 <- Field Type (0-13). See below
- 5 Xe$Offset Integer 2 <- Field Offset starting from 0
- 6 Xe$Size Integer 2 <- Field Size
- 7 Xe$Dec Integer 1 <- Field decimal places (for Decimal type)
- 8 Xe$Flags Integer 2 <- Reserved
-
- Key Type Field Size Orde
- 0 Unique 1 Xe$Id 2 Ascending
-
- 1 Non-unique 2 Xe$File 2 Ascending
-
- 2 Non-unique 3 Xe$Name 20 Ascending
-
- 3 Unique 2 Xe$File 2 Ascending
- 3 Xe$Name 20 Ascending
-
- NOTES:
-
- 1. Field values of the first 17 records of FIELD.DDF are:
-
- Xe$Id Xe$File Xe$Name Xe$DataType Xe$Offset Xe$Size Xe$Dec Xe$Flags
- ----- ------- ----------- ----------- --------- ------- ------ --------
- 1 1 Xf$Id 1 0 2 0 0
- 2 1 Xf$Name 0 2 20 0 0
- 3 1 Xf$Loc 0 22 64 0 0
- 4 1 Xf$Flags 1 86 1 0 0
- 5 2 Xe$Id 1 0 2 0 0
- 6 2 Xe$File 1 2 2 0 0
- 7 2 Xe$Name 0 4 20 0 0
- 8 2 Xe$DataType 1 24 1 0 0
- 9 2 Xe$Offset 1 25 2 0 0
- 10 2 Xe$Size 1 27 2 0 0
- 11 2 Xe$Dec 1 29 1 0 0
- 12 2 Xe$Flags 1 30 2 0 0
- 13 3 Xi$File 1 0 2 0 0
- 14 3 Xi$Field 1 2 2 0 0
- 15 3 Xi$Number 1 4 2 0 0
- 16 3 Xi$Part 1 6 2 0 0
- 17 3 Xi$Flags 1 8 2 0 0
-
- 2. The Field name Xe$File is same as the Xf$ID field in FILE.DDF. This
- is used by VB3 automatically to locate the field names in your
- Btrieve file and fill the DROP DOWN list for the .DataField property
- of a bound control.
-
- 3. The data type of a field stored in Xe$DataType is one of the following
- integer values.
-
- Data Type Value Data Type Value
- --------- ----- --------- -----
- * string 0 logical 7
- * integer 1 numeric 8
- * float 3 bfloat 9
- date 4 lstring 10
- time 4 zstring 11
- decimal 5 note 12
- money 6 lvar 13
-
- * These are the only ones I found useful in a BASIC program.
- float => SINGLE or DOUBLE
- date and time data types are stored as long integers by Btrieve.
-
- Formulas for conversion are:
-
- BtrTime& = HH& * 16777216 + MM& * 65536 + SS& * 256
- BtrDate& = YY& * 65536 + MM& * 256 + DD&
- DateBtr$ = Format$(MM&, "00") + "/" + Format$(DD&, "00") _
- + "/" + Format$(YY&, "0000")
-
- TimeBtr$ = Format$(HH&, "00") + ":" + Format$(MM&, "00") _
- + ":" + Format$(SS&, "00")
-
- Long variables are used to avoid overflow.
-
- ***************************************************************************
-
- Two ways of creating your DDF files are:
-
- 1. VISDATA.MAK project from VB3 (or Data Manager program in VB3's 'Windows'
- menu.
- 2. Use MS Access to create the DDF files using the FILE.DDF, FIELD.DDF,
- FILE.DAT and FILED.DAT files included in the ZIP file.
-
- Method 1.
- ---------
-
- Copy following files to a subdirectory. All must be in the same subdirectory.
-
- 1. FILE.DDF
- 2. FIELD.DDF
- 3. FILE.DAT
- 4. FIELD.DAT
-
- FILE.DDF has five records. 1st three, as you know by now, are for the
- dictionary files (FILE.DDF, FIELD.DDF and INDEX.DDF).
-
- Record 4 is for FILE.DAT. FILE.DAT is a minimal FILE.DDF i.e.
- with only three records (for the three dictionary files).
-
- Record 5 is for FIELD.DAT. FIELD.DAT is minimal FIELD.DDF i.e.
- with only 17 records (for the three dictionary files).
-
- Copy all these files into same subdirectory, e.g., C:\VB3.
-
- Now comes the bootstrap process, i.e., use DDF files and VB3/ACCESS to
- create the DDF files for your Btrieve Tables.
-
- Use VISDATA.MAK project or 'Data Manager' from the VB3's 'Windows' menu.
- Connect to Btrieve Data Base. Select FILE.DDF from VB3 subdir. You will see
- two tables:
-
- (i) 'Files_DDF' and
- (ii) 'Fields_DDF'.
-
- Select Data Control Option and OPEN Files_DDF Table. Start adding your
- own Btrieve Files Names and Location. Assign Xf$ID starting from 4.
-
- Once you are done with all your Btrieve Files, OPEN 'Fields_DDF' Table and
- start adding the Fields of your Btrieve files that you just entered. You
- might want to open two windows and add files in 'Files_DDF' Table and fields
- in 'Fields_DDF' Tables at the same time. For 'Files_DDF' table start Xe$ID
- from 18.
-
- When you are done rename FILE.DDF and FIELD.DDF to something else and keep
- them for future use. Rename FILE.DAT to FILE.DDF and FIELD.DAT to FIELD.DDF
- and you are on your way to use VB3's data access methods and control with
- Btrieve. And remember you can always add new files (tables) and delete the
- one you don't need using the same process (re-renaming will be required)
- described above.
-
- Method 2.
- ---------
-
- Start MS Access 1.0/1.1/2.0. Open a 'New' database. Call it MAKEDDF.MDB.
- From file menu select 'Attach Tables'. Select Btrieve. Locate 'FILE.DDF'
- that is included in this ZIP file. Attach both File_DDF and Field_DDF tables.
- Click OK when done. Open File_DDF and start entering info about your
- Btrieve Tables. When done open Filed_DDF and start entering info about the
- fields in your Btrieve Tables.
-
- When you are done rename FILE.DDF and FIELD.DDF to something else and keep
- them for future use. Rename FILE.DAT to FILE.DDF and FIELD.DAT to FIELD.DDF
- and you are on your way to use your Btrieve tables with MS Access or VB3.
- Remember you can always add new files (tables) and delete the one you don't
- need using the same process (re-renaming will be required) described above.
-
- Sunil.