Dml-pack failed at table level postgresql driver

Use this forum for questions and answers regarding PostGreSQL and the PGDBE.
Post Reply
Message
Author
Diego Euri Almanzar
Posts: 167
Joined: Thu Nov 05, 2020 10:51 am
Location: DOMINICAN REPUBLIC

Dml-pack failed at table level postgresql driver

#1 Post 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.

k-insis
Posts: 100
Joined: Fri Jan 28, 2011 4:07 am

Re: Dml-pack failed at table level postgresql driver

#2 Post 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.

User avatar
Tom
Posts: 1171
Joined: Thu Jan 28, 2010 12:59 am
Location: Berlin, Germany

Re: Dml-pack failed at table level postgresql driver

#3 Post 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.
Best regards,
Tom

"Did I offend you?"
"No."
"Okay, give me a second chance."

Diego Euri Almanzar
Posts: 167
Joined: Thu Nov 05, 2020 10:51 am
Location: DOMINICAN REPUBLIC

Re: Dml-pack failed at table level postgresql driver

#4 Post by Diego Euri Almanzar »

Distinguished K-Insist, and Tom

Excellent information. They will help me a lot.

Thank you.

Post Reply