Board index » cppbuilder » Table is full

Table is full


2004-11-23 06:54:26 PM
cppbuilder102
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

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

Hello Carmen,
How are you adding records to the table ? Are you using a TQuery to do this?
Check if is there enough disk space to add the records, or if you have
fallen
in a endless loop. You also may check if you have enough rights to write
data
on the disk.
Give more details about your application, does it work in a network
environment ?
HTH
Jayme.
"Carmen Gómez" < XXXX@XXXXX.COM >escreveu na mensagem
Quote
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.


 

{smallsort}

Re:Table is full

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 {*word*193} (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:
Quote
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

"Carmen Gómez" < XXXX@XXXXX.COM >wrote:
Quote
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.


You can increase the block size for Paradox tables.
BDE Administrator ->Configuration ->Drivers ->Native ->
PARADOX ->Block size
Default 2048.
Then you must restructre the table.