Page 1 of 1

Dml-pack failed at table level postgresql driver

Posted: Wed Jan 03, 2024 11:06 pm
by Diego Euri Almanzar
Hello everyone,

May this new year be excellent for each of you.

The DBE that allows us to use postgreql in Xbase++ exceeds all my expectations.
Ignoring, of course, the problem of records that are permanently blocked, and the problem of the pack command.

After studying, for two years, the pros and cons of this excellent DBE, I feel obliged to get some benefit from it. I must implement it, however I have not been able to overcome the problem with the pack command. It doesn't work for me on exclusive tables. And obviously it doesn't work for me on shared tables either.

Of the thousand attempts with pack, maybe one works. And, if it works, now the first pack, now the second it doesn't work. I have tried to replace the pack ISAM command with the SQL DELETE FROM command, but it does not work.

The runtime error is the following: dml-pack failed at table level

I hope you can help me.

Thank you.

Best regards.

Re: Dml-pack failed at table level postgresql driver

Posted: Thu Jan 25, 2024 2:27 am
by k-insis
You should not do any 'pack' on sql servers as that is something server do by their own.

If you do server side DELETE from then you will have to do it the way (afaik) Alaska does with stored procedures so consistency is kept for service tables.

> the problem of records that are permanently blocked,

So Alaska did not fix a bug where due to irregular client disconnect a record lock (that is written as data in one of tables) is persisting?



Diego Euri Almanzar wrote: Wed Jan 03, 2024 11:06 pm Hello everyone,

May this new year be excellent for each of you.

The DBE that allows us to use postgreql in Xbase++ exceeds all my expectations.
Ignoring, of course, the problem of records that are permanently blocked, and the problem of the pack command.

After studying, for two years, the pros and cons of this excellent DBE, I feel obliged to get some benefit from it. I must implement it, however I have not been able to overcome the problem with the pack command. It doesn't work for me on exclusive tables. And obviously it doesn't work for me on shared tables either.

Of the thousand attempts with pack, maybe one works. And, if it works, now the first pack, now the second it doesn't work. I have tried to replace the pack ISAM command with the SQL DELETE FROM command, but it does not work.

The runtime error is the following: dml-pack failed at table level

I hope you can help me.

Thank you.

Best regards.

Re: Dml-pack failed at table level postgresql driver

Posted: Thu Jan 25, 2024 7:49 am
by Tom
You should not do any 'pack' on sql servers as that is something server do by their own.
If you use the PGDBE, Xbase++ simulates the delete/recall/pack-commands using a standard column "__deleted" in every table which holds the "deleted" information. The sql server doesn't know anything of this. If you don't pack (which is not just "DELETE FROM <cTableName> WHERE __deleted") those tables from time to time, you may carry more deleted than living data, which may cause several effects. So, DbPack() with the PGDBE is not the same as what the server does by itself. Same for re-indexing.

Re: Dml-pack failed at table level postgresql driver

Posted: Tue Feb 06, 2024 12:12 am
by Diego Euri Almanzar
Distinguished K-Insist, and Tom

Excellent information. They will help me a lot.

Thank you.