The Minimum You Need to Know




Table of Contents

Overview

1.1 Scope of This Book
1.2 Designer Naming Standards
Designer Rule of Sanity #1
Designer Rule of Sanity #2
Designer Rule of Sanity #3
1.3 Application Design Standards
1.4 Pitfalls of XBASE Products in General
1.5 Tools Used in This Book

Boosting DOS performance

2.1 The Performance Problem
2.2 The Solution for ZAF Users
2.3 The Promised Code
x32lib.mak
x32_fg.wcc
x32fgzil.wcc
testxfg.cpp fg_cstm.c
2.4 Follow Up

Tricks You Should Already Have

3.1 My Personal Library of Tricks
3.2 The Old Template
3.3 trim_str( Subroutine
3.4 Error Message Routines
system_error_msg()
system_error_msg_exit()
ls_error_msg()
3.5 exit_program() Function
3.6 not_blank() Function
3.7 locate_lb_elm() Function
3.8 Z_TRACE Debugging Tool
3.9 file_browse_routine()
cancel_fle_browse_function()
cancel_print_win()
dos_print_file_function()
file_browse_routine()
local_dos_print_file_function()
local_os2_print_file_function()
local_print_file_function()
local_net_print_file_function()
net_print_file_function()
print_file_function()
save_edit_file_function()
3.10 ls_lib.hpp The Library Header File
3.11 Library Make File
LS_D32.RSP
LS_X32.RSP
LS_WIN.RSP
LS_OS2.RSP
3.12 Demonstration Application
figure 3-1
figure 3-2
ch3_.hpp
ch3_.cpp
ch3.cpp
ch3a.cpp
ch3.lbl
ch3.mak

Developing with CodeBase

4.1 Pitfalls of Using CodeBase
4.2 File handles in DLL's
4.3 Building the CodeBase libraries
4.4 The sample database
Figure 4.1
Figure 4.2
Figure 4.3
Figure 4.4
4.5 The Code
CH4_.HPP
CH4_.CPP
CH4.CPP
CH4A.CPP
CH4.MAK
4.6 Explanation

Developing with Greenleaf Data Base

5.1 What is GDB?
5.2 Pitfalls of Developing with GDB
5.3 Building the Libraries
BUILDW10.INI
5.4 The Code
CH5_.CPP
CH5_.HPP
CH5.CPP
CH5A.CPP
CH5.MAK
5.5 Follow Up

Developing with Btrv++ and BtrvGen++

6.1 Strengths of Btrieve Over XBASE File Systems
6.2 Pitfalls of Developing Btrieve Software
6.3 The Cheapest Way to Get Into Btrieve Development
6.4 The Interface Function
BTRV.CPP
6.5 Building the Libraries
XBTRVOBJ.MK
XBTRVOBJ.LNK
WBTRVOBJ.MK
WBTRVOBJ.LNK
OBTRVOBJ.MK
OBTRVOBJ.LNK
6.6 The Code
INV.H
INV.CPP
SINV.H
SINV.CPP
CH6_.HPP
CH6_.CPP
CH6.CPP
CH6A.CPP
T6.CPP
CH6.MAK
WCH6.RSP
XCH6.RSP
OCH6.RSP
TCH6.RSP
6.7 Follow Up

Developing with ODBC

7.1 Pitfalls of ODBC
7.2 The Cheapest way Into ODBC
7.3 The Test Program
TEST.CPP
TEST1.CPP
TEST.MAK
TEST.RSP
7.4 Explaination of Test
7.5 Small Inventory System
CH7_.HPP
CH7_.CPP
CH7.CPP
CH7A.CPP
CH7.MAK
CH7.RSP
7.6 Follow Up

Developing with Poet

8.1 Pitfalls of POET
8.2 The Cheapest Way Into POET
8.3 Dealing with Visual C++
FB_E.CPP
ZT.CPP
LSM_LIB.MAK
LSM_LIB.RSP
8.4 First Sample Application
INV.HCD
INV.PTX
INV.CXX
PTASSOC.CXX
POPULT.CPP
POPULT.MAK
POPULT.DEF
8.5 Small Inventory System
CH8.HPP
CH8.CPP
8.6 CH8.CPP Follow Up
CH8A.CPP
8.7 CH8A.CPP Follow Up
CH8.MAK
CH8.DEF
CH8_2.DEF
8.8 Conclusion

Developing with GreenLeaf CommLib

9.1 What is CommLib?
9.2 Pitfalls of CommLib
9.3 Scenario for the sample program
9.4 What kind of scale do I want?
9.5 The scale packet
9.6 Generating scale weights
SREAD.CPP
SREAD.MAK
SCALE.INI
9.7 Our databases
Main Window 1
Main Window 2
Truck Window 1
Truck Window 2
Truck Window 3
Ticket Window 1
Ticket Window 2
Ticket Window 3
9.8 The "Holy Sh*t" example
CH9_.HPP
CH9_.CPP
HS.HPP
HS.CPP
HSA.CPP
HSB.CPP
HS.MAK
9.9 "Holy Sh*t" follow up
9.10 The derived object method
CH9.HPP
CH9.CPP
CH9A.CPP
CH9B.CPP
CH9.MAK
9.11 Derived object follow up

Ponderings

10.1 Getting Warped - One Soldiers Tour of Carnage
11.2 Microsoft's Armageddon
11.3 Our Database and Design Choices
10.4 The Myth of Code Generators
10.5 Where Do We Go From Here?
10.6 Contacting the Author