🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: borland.public.cppbuilder.database.multi-tier
2 messages
2 total messages Started by Carmen G�mez Tue, 23 Nov 2004 10:54
Table is full
#238
Author: Carmen G�mez
Date: Tue, 23 Nov 2004 10:54
12 lines
1198 bytes
Hi all,

I have a problem.

When I add records in a table, I receive this message "Table is full".
The table is Paradox and I use TQuery for filter data.

What can I do?

Thanks all

Carmen. 
Re: Table is full
#239
Author: Sydney Delieu
Date: Wed, 24 Nov 2004 14:02
68 lines
3046 bytes
Hi Carmen,

I have not used Paradox tables to any great extent, but I did come 
across the same problem some time ago. The problem was to do with the 
Paradox 'Block Size'. The Block Size of a Paradox table can be 1024, 
2048, 4096, 16384, or 32768 (depending on the version of Paradox). From 
memory - there is a finite number of blocks (I think it's 65536) a 
Paradox table can contain, so the Block Size you set determines the 
maximum size of the table (ie 65536 * BlockSize).

Here is the method I wrote to convert the blocksize - it was converted 
from a Delphi example given on the Borland site. It doesn't check for 
errors and is cheap and nasty (ie. does not check the Paradox table 
version info to see if the requested blocksize can be used), but it did 
the trick for me:

//--------------------------------------------------
// Convert blocksize given the TTable and BlkSize.
//--------------------------------------------------
void __fastcall ParadoxRestructure::ChangeBlockSize(TTable *tbl, String 
BlkSize)
{
   CRTblDesc   TblDesc;
   FLDDesc     pFDesc;
   hDBIDb      hDB;
   String      Option, OptData;

   Option  = "BLOCK SIZE";
   OptData = BlkSize;

   DbiGetObjFromObj(tbl->Handle, objDATABASE, hDB);
   tbl->Close();
   memset((void*)&TblDesc, 0, sizeof(TblDesc));
   lstrcpy(TblDesc.szTblName, tbl->TableName.c_str());
   lstrcpy(TblDesc.szTblType, szPARADOX);

   pFDesc.iOffset = 0;
   pFDesc.iLen = strlen(OptData.c_str()) + 1;
   lstrcpy(pFDesc.szName, Option.c_str());

   TblDesc.iOptParams = 1;
   TblDesc.pfldOptParams = &pFDesc;
   TblDesc.pOptData = &OptData[1];

   DbiDoRestructure(hDB, 1, &TblDesc, NULL, NULL, NULL, false);
}

Hope that this helps.

Regards,
Syd.


Carmen G�mez wrote:
> Hi all,
> 
> I have a problem.
> 
> When I add records in a table, I receive this message "Table is full".
> The table is Paradox and I use TQuery for filter data.
> 
> What can I do?
> 
> Thanks all
> 
> Carmen. 
> 
> 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads