Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 10 total
Thread Run version 3.3 in BDS 2006
Wed, May 30 2007 1:15 PMPermanent Link

Nick Spurrier
I was using V 3.3 client server (with source) in D7 and put Turbo Delphi (aka V 10) on another machine. Can't get it to compile. I'm sure the question has been asked and answered here
before but could someone point me in the right direction for any required code changes. I can sort the references in the dpks out myself (I hope).

Thanks in advance

Nick
Thu, May 31 2007 11:59 AMPermanent Link

Nick Spurrier
To answer my own question, if you have the source code -

In dbisamcn.pas change the value of the MAX_FIELD_TYPES constant to 26

In dbisamtb make the following alterations to the constant declarations. These are required to match the declarations

in dbtables.pas

 FldTypeMap: array[TFieldType] of Byte = (
     TYPE_UNKNOWN,TYPE_ZSTRING,TYPE_INT16,TYPE_INT32,TYPE_UINT16,TYPE_BOOL, // 0..5
     TYPE_FLOAT,TYPE_FLOAT,TYPE_BCD,TYPE_DATE,TYPE_TIME,TYPE_TIMESTAMP,TYPE_BYTES, //6..12
     TYPE_VARBYTES,TYPE_INT32,TYPE_BLOB,TYPE_BLOB,TYPE_BLOB,TYPE_BLOB,TYPE_BLOB, // 13..19
     TYPE_BLOB,TYPE_BLOB,TYPE_CURSOR,TYPE_ZSTRING,TYPE_ZSTRING,TYPE_INT64,TYPE_ADT, // 20..26
     TYPE_ARRAY,TYPE_REF,TYPE_TABLE,TYPE_BLOB,TYPE_BLOB,TYPE_UNKNOWN,TYPE_UNKNOWN,  // 27..33
     TYPE_UNKNOWN,TYPE_ZSTRING,TYPE_TIMESTAMP,TYPE_BCD, // 34..37
     TYPE_ZSTRING,TYPE_BLOB,TYPE_TIMESTAMP,TYPE_INT32); // 38..41

  FldSubTypeMap: array[TFieldType] of Word = (
     0,0,0,0,0,0,
     0,SUBTYPE_MONEY,0,0,0,0,0,
     0,SUBTYPE_AUTOINC,0,SUBTYPE_MEMO,SUBTYPE_GRAPHIC,SUBTYPE_FMTMEMO,0,
     0,SUBTYPE_TYPEDBINARY,0,SUBTYPE_FIXED,SUBTYPE_UNICODE,0,0,
     0,0,0,0,0,0,0,
     0,0,0,0,
     0,0,0,0);

  DataTypeMap: array[0..MAX_FIELD_TYPES-1] of TFieldType = (
     ftUnknown,ftString,ftDate,ftBlob,ftBoolean,ftSmallint,
     ftInteger,ftFloat,ftBCD,ftBytes,ftTime,ftDateTime,
     ftWord,ftInteger,ftUnknown,ftVarBytes,ftUnknown,ftUnknown,
     ftLargeInt,ftLargeInt,ftADT,ftArray,ftReference,ftDataSet,
     ftTimeStamp,ftFMTBCD);

  BlobTypeMap: array[SUBTYPE_MEMO..SUBTYPE_BFILE] of TFieldType = (
     ftMemo,ftBlob,ftFmtMemo,ftBlob,ftGraphic,ftBlob,
     ftTypedBinary,ftBlob,ftBlob,ftBlob,ftBlob,ftMemo,ftBlob,
     ftBlob,ftBlob);

Add the following to dbisamvr.inc at the bottom of the file


{$IFDEF VER180}
  {$DEFINE D3ORHIGHER}
  {$DEFINE C3ORHIGHER}
  {$DEFINE D4ORHIGHER}
  {$DEFINE C4ORHIGHER}
  {$DEFINE D5ORHIGHER}
  {$DEFINE C5ORHIGHER}
  {$DEFINE D6ORHIGHER}
  {$DEFINE C6ORHIGHER}
  {$DEFINE D7ORHIGHER}
{$ENDIF}

That's all you really need in order to compile the runtime and design-time packages.
Thu, May 31 2007 12:31 PMPermanent Link

"camperos"
> To answer my own question, if you have the source code -
>
>   ...cut....
>
> That's all you really need in order to compile the runtime and design-time packages.
>

Can I use the same change for Delphi 2007 ?
Thanks

C.

Thu, May 31 2007 2:49 PMPermanent Link

Nick Spurrier
>"camperos" <noname@email.com> wrote:
>Can I use the same change for Delphi 2007 ?

You would need to change the VER180 in the version defines file to VER190.
I can't tell you it would work because I don't have Delphi 2007 but it's worth a try.

Nick
Thu, May 31 2007 2:58 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com


<< Can I use the same change for Delphi 2007 ? >>

Yes.  Delphi 2007 uses both the VER180 and VER185 IFDEFs for compilation in
order to be backward-compatible with BDS 2006 compilation.

--
Tim Young
Elevate Software
www.elevatesoft.com

Thu, May 31 2007 2:59 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Nick,

<< You would need to change the VER180 in the version defines file to
VER190.  I can't tell you it would work because I don't have Delphi 2007 but
it's worth a try. >>

Actually it is VER185, but the VER180 IFDEF is also used so the code doesn't
actually need to be changed at all.

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Jun 1 2007 3:38 AMPermanent Link

Nick Spurrier
Tim,

Thanks for the correction. You may think it odd that some of us want to use v 3 in compilers later than D7 and it's not the upgrade cost (for me anyway). I used v 3.27 in many applications
for clients, even converting some that I did using Paradox for Windows Version 1, and it proved rock solid - not even my most wayward client managed to break it - and I have a large
investment in code libraries using DBISAM 3 that I can pick up and re-use.

Nick

Fri, Jun 1 2007 3:57 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Nick,

<< Thanks for the correction. You may think it odd that some of us want to
use v 3 in compilers later than D7 and it's not the upgrade cost (for me
anyway). I used v 3.27 in many applications for clients, even converting
some that I did using Paradox for Windows Version 1, and it proved rock
solid - not even my most wayward client managed to break it - and I have a
large investment in code libraries using DBISAM 3 that I can pick up and
re-use. >>

I don't think that it's odd at all.  I only think it's odd when some suggest
that we should put out official releases for very old versions that we
stopped development on years ago. Wink

--
Tim Young
Elevate Software
www.elevatesoft.com

Sat, Sep 27 2008 4:54 PMPermanent Link

Abdulaziz Jasser
Nick,

I have a slimier case and I've done all the steps.  Now how to install the new packages under d2007?

Thanks...








Nick Spurrier <nick@modesoft.co.uk> wrote:

To answer my own question, if you have the source code -

In dbisamcn.pas change the value of the MAX_FIELD_TYPES constant to 26

In dbisamtb make the following alterations to the constant declarations. These are required to match the declarations

in dbtables.pas

 FldTypeMap: array[TFieldType] of Byte = (
     TYPE_UNKNOWN,TYPE_ZSTRING,TYPE_INT16,TYPE_INT32,TYPE_UINT16,TYPE_BOOL, // 0..5
     TYPE_FLOAT,TYPE_FLOAT,TYPE_BCD,TYPE_DATE,TYPE_TIME,TYPE_TIMESTAMP,TYPE_BYTES, //6..12
     TYPE_VARBYTES,TYPE_INT32,TYPE_BLOB,TYPE_BLOB,TYPE_BLOB,TYPE_BLOB,TYPE_BLOB, // 13..19
     TYPE_BLOB,TYPE_BLOB,TYPE_CURSOR,TYPE_ZSTRING,TYPE_ZSTRING,TYPE_INT64,TYPE_ADT, // 20..26
     TYPE_ARRAY,TYPE_REF,TYPE_TABLE,TYPE_BLOB,TYPE_BLOB,TYPE_UNKNOWN,TYPE_UNKNOWN,  // 27..33
     TYPE_UNKNOWN,TYPE_ZSTRING,TYPE_TIMESTAMP,TYPE_BCD, // 34..37
     TYPE_ZSTRING,TYPE_BLOB,TYPE_TIMESTAMP,TYPE_INT32); // 38..41

  FldSubTypeMap: array[TFieldType] of Word = (
     0,0,0,0,0,0,
     0,SUBTYPE_MONEY,0,0,0,0,0,
     0,SUBTYPE_AUTOINC,0,SUBTYPE_MEMO,SUBTYPE_GRAPHIC,SUBTYPE_FMTMEMO,0,
     0,SUBTYPE_TYPEDBINARY,0,SUBTYPE_FIXED,SUBTYPE_UNICODE,0,0,
     0,0,0,0,0,0,0,
     0,0,0,0,
     0,0,0,0);

  DataTypeMap: array[0..MAX_FIELD_TYPES-1] of TFieldType = (
     ftUnknown,ftString,ftDate,ftBlob,ftBoolean,ftSmallint,
     ftInteger,ftFloat,ftBCD,ftBytes,ftTime,ftDateTime,
     ftWord,ftInteger,ftUnknown,ftVarBytes,ftUnknown,ftUnknown,
     ftLargeInt,ftLargeInt,ftADT,ftArray,ftReference,ftDataSet,
     ftTimeStamp,ftFMTBCD);

  BlobTypeMap: array[SUBTYPE_MEMO..SUBTYPE_BFILE] of TFieldType = (
     ftMemo,ftBlob,ftFmtMemo,ftBlob,ftGraphic,ftBlob,
     ftTypedBinary,ftBlob,ftBlob,ftBlob,ftBlob,ftMemo,ftBlob,
     ftBlob,ftBlob);

Add the following to dbisamvr.inc at the bottom of the file


{$IFDEF VER180}
  {$DEFINE D3ORHIGHER}
  {$DEFINE C3ORHIGHER}
  {$DEFINE D4ORHIGHER}
  {$DEFINE C4ORHIGHER}
  {$DEFINE D5ORHIGHER}
  {$DEFINE C5ORHIGHER}
  {$DEFINE D6ORHIGHER}
  {$DEFINE C6ORHIGHER}
  {$DEFINE D7ORHIGHER}
{$ENDIF}

That's all you really need in order to compile the runtime and design-time packages.
Sat, Sep 27 2008 4:55 PMPermanent Link

Abdulaziz Jasser
Nick,

I have a slimier case and I've done all the steps.  Now how to install the new packages under d2007?

Thanks...






Nick Spurrier <nick@modesoft.co.uk> wrote:

To answer my own question, if you have the source code -

In dbisamcn.pas change the value of the MAX_FIELD_TYPES constant to 26

In dbisamtb make the following alterations to the constant declarations. These are required to match the declarations

in dbtables.pas

 FldTypeMap: array[TFieldType] of Byte = (
     TYPE_UNKNOWN,TYPE_ZSTRING,TYPE_INT16,TYPE_INT32,TYPE_UINT16,TYPE_BOOL, // 0..5
     TYPE_FLOAT,TYPE_FLOAT,TYPE_BCD,TYPE_DATE,TYPE_TIME,TYPE_TIMESTAMP,TYPE_BYTES, //6..12
     TYPE_VARBYTES,TYPE_INT32,TYPE_BLOB,TYPE_BLOB,TYPE_BLOB,TYPE_BLOB,TYPE_BLOB, // 13..19
     TYPE_BLOB,TYPE_BLOB,TYPE_CURSOR,TYPE_ZSTRING,TYPE_ZSTRING,TYPE_INT64,TYPE_ADT, // 20..26
     TYPE_ARRAY,TYPE_REF,TYPE_TABLE,TYPE_BLOB,TYPE_BLOB,TYPE_UNKNOWN,TYPE_UNKNOWN,  // 27..33
     TYPE_UNKNOWN,TYPE_ZSTRING,TYPE_TIMESTAMP,TYPE_BCD, // 34..37
     TYPE_ZSTRING,TYPE_BLOB,TYPE_TIMESTAMP,TYPE_INT32); // 38..41

  FldSubTypeMap: array[TFieldType] of Word = (
     0,0,0,0,0,0,
     0,SUBTYPE_MONEY,0,0,0,0,0,
     0,SUBTYPE_AUTOINC,0,SUBTYPE_MEMO,SUBTYPE_GRAPHIC,SUBTYPE_FMTMEMO,0,
     0,SUBTYPE_TYPEDBINARY,0,SUBTYPE_FIXED,SUBTYPE_UNICODE,0,0,
     0,0,0,0,0,0,0,
     0,0,0,0,
     0,0,0,0);

  DataTypeMap: array[0..MAX_FIELD_TYPES-1] of TFieldType = (
     ftUnknown,ftString,ftDate,ftBlob,ftBoolean,ftSmallint,
     ftInteger,ftFloat,ftBCD,ftBytes,ftTime,ftDateTime,
     ftWord,ftInteger,ftUnknown,ftVarBytes,ftUnknown,ftUnknown,
     ftLargeInt,ftLargeInt,ftADT,ftArray,ftReference,ftDataSet,
     ftTimeStamp,ftFMTBCD);

  BlobTypeMap: array[SUBTYPE_MEMO..SUBTYPE_BFILE] of TFieldType = (
     ftMemo,ftBlob,ftFmtMemo,ftBlob,ftGraphic,ftBlob,
     ftTypedBinary,ftBlob,ftBlob,ftBlob,ftBlob,ftMemo,ftBlob,
     ftBlob,ftBlob);

Add the following to dbisamvr.inc at the bottom of the file


{$IFDEF VER180}
  {$DEFINE D3ORHIGHER}
  {$DEFINE C3ORHIGHER}
  {$DEFINE D4ORHIGHER}
  {$DEFINE C4ORHIGHER}
  {$DEFINE D5ORHIGHER}
  {$DEFINE C5ORHIGHER}
  {$DEFINE D6ORHIGHER}
  {$DEFINE C6ORHIGHER}
  {$DEFINE D7ORHIGHER}
{$ENDIF}

That's all you really need in order to compile the runtime and design-time packages.
Image