BDE erro = Too many Record lock on table

10/05/2003

2

Gostaria de uma solução para o erro do Bde - Too many Record lock on table, ele ocorre quando estou inserindo um grande numero de registros, acima de 256 registros. Uso tabelas paradox.
Já procurei alguma configuração no bde para almentar a capacidade de lock, mas não encontrei.

Se alguem puder me ajudar agradeço.


Responder

Posts

10/05/2003

Aroldo Zanela

Colega,

Não entendi porque você precisa ficar com mais de 255 registros bloqueados ao mesmo tempo. Não seria o caso de bloquear, alterar, gravar para liberar o bloqueio?

Aqui está uma tabela de limitação do Paradox. Pesquisei para ver se tinha uma forma de aumentar o número, mas realmente está limitado em 255:

PARADOX LIMITS 127 Tables open per system (4.0 and earlier 16 Bit32 Bit)
254 Tables open per system (4.01 32 Bit)
64 Record locks on one table (16Bit) per session
255 Record locks on one table (32Bit) per session
255 Records in transactions on a table (32 Bit)
512 Open physical files (4.0 and earlier 16 Bit32 Bit)
(DB, PX,MB, X??, Y??, VAL,TV)
1024 Open physical files (4.01 32 Bit
(DB, PX,MB, X??, Y??, VAL,TV)
300 Users in one PDOXUSRS.NET file
255 Number of fields per table
255 Size of character fields
2 Billion records in a table
2 Billion bytes in .DB (Table) file
10800 Bytes per record for indexed tables
32750 Bytes per record for non-indexed tables
127 Number of secondary indexes per table
16 Number of fields in an index
255 Concurrent users per table
256 Megabytes of data per BLOB field
100 Passwords per session
15 Password length
63 Passwords per table
159 Fields with validity checks (32 Bit)
63 Fields with validity checks (16 Bit)
53 Fields with Validity checks added at onetime
63 Number of Sessions with Tables open on1 System


Responder

11/05/2003

Dalri

procedure TForm1.FormCreate(Sender: TObject);
var
QDir : String;
begin
QDir := ´C:\WINDOWS\DRWT\TEMP´;

If not(DirectoryExists(QDir)) then
ForceDirectories(QDir);

Session.PrivateDir := QDir;

end;


Responder

11/05/2003

Dalri

:D
Acrescente FileCtrl a clausula uses;

No evento onCreate o seu form principal coloque o seguinte codigo:

procedure TForm1.FormCreate(Sender: TObject);
var
QDir : String;
begin
QDir := ´C:\WINDOWS\TEMP´;

If not(DirectoryExists(QDir)) then
ForceDirectories(QDir);

Session.PrivateDir := QDir;

end;

Espero ter ajudado

Alessandro Dal Ri


Responder