Wiki Home

Tightline Data Classes


Namespace: VFP
A Place For the Tightline Data Classes

The Tightline Data Classed is a data-layer framework by Andy Kramek and Marcia Akins that provides a comprehensive, robust, fast, and flexible abstraction layer for SQLServer, Oracle, and VFP data, as well as any combination of these.

Download the Public Domain version from here: http://tightlinecomputers.com/Downloads.htm
I've been using the Tightline Data Classes for several years now, on rather large projects, and I can vouch for how fast, flexible, robust, and usable this framework is. -- Steven Black
I have just encountered something very strange and would like to get confirmation of it.

I have a Windows XP Professional running VFP 9.0 and SQL Server 2000. The following code behaves as I would expect....

lnCon = SQLCONNECT( [DSN], [UID], [PWD] )
*** Returns 1, inserts the record
? SQLEXEC( lnCon, [INSERT INTO customer ( acct_id, acct_nme ) VALUES ( 'XA123', 'SomeOne New' )
*** Returns 1, deletes the record
? SQLEXEC( lnCon, [DELETE customer WHERE acct_id = 'XA123'] )


However, starting today the following line of suddenly code returns a one-row cursor (named SQLRESULT) with one column named "expr1" and a value of NULL.
*** Returns 1, AND a single roq cursor named "SQLRESULT"
? SQLEXEC( lnCon, [UPDATE customer set acct_nme = 'Updated Name' WHERE acct_id = 'XA123'] )


You get no error, and no indication that anything is wrong, but your updates don't get made.

SOLUTION! A trigger got added to the table that, under certain circumstances was returning a value - causing the cursor to be created in VFP!
This is a nasty little side effect that caught me by surprise. -- Andy Kramek

Models of the Tightline Data Classes

Here is a data diagram and static object model of the Tightline Data Classes. This is a slightly modified version from the Public Domain version.

Essentially,
  • Each data store has its own behavior class.
  • SQL Selects are reusably defined in cursor definitions.
  • Cursors can be updateable.
  • Cursors are grouped into data sets.
  • Connections are abstracted into connection objects.
  • A data manager controls the works.



Category Data

Category Third Party Tools Category Data
( Topic last updated: 2007.05.11 12:17:53 PM )