Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 4 of 4 total
Thread ALTER TABLE PROBLEM
Fri, Aug 31 2012 5:05 AMPermanent Link

Paul Waegemans

IMS bvba

Avatar

I have changed my application from local tot remote and I'am hosting now my database on a dedicated server (running Windows Server 2008 R2 Standard Edition) on wich I started dbsrvr.exe. Everything is working fine until the moment I want to ALTER a table to add a field using a sql statement

with dml.SqlAanpassen do
       begin
       databasename:=dml.tblwed_kalender.DatabaseName;
       if dml.tblwed_kalender.active=true then dml.tblwed_kalender.close;
       sql.clear;
       sql.add('ALTER TABLE wed_kalender ADD IF NOT EXISTS reekscategorie VARCHAR(30) ;');
       execsql;
       sql.clear;
       end;

In the log from the server I see the error  REQUEST_PREPARESTMT (see attachment)

What is the problem?

The sql statemant works correct in my local application.



Attachments: logboek.txt
Fri, Aug 31 2012 10:46 AMPermanent Link

Fernando Dias

Team Elevate Team Elevate

Paul,

The first thing I noticed is you are mixing different versions, the server is 4.29 and at least some clients are 4.22. I don't know if that is the cause of the error, it might be or not, but there were a lot of changes between 4.22 and 4.29. From the top of my head, there is at least one change that is very important as it is a breaking change - BLOB columns touched by 4.28 become incompatible with earlier versions.
IMO, the first thing to do is to have all clients using the same version as the server.
After that, we will see what comes up.  

--
Fernando Dias
[Team Elevate]
Fri, Aug 31 2012 11:46 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Paul


Did you make sure that no users were logged on and that all sessions had expired and been cleaned up.

DBISAM Engine Error # 11013 Access denied to table or backup file 'wed_kalender'

If you look in the manual you'll see something like

Access denied to table or backup file '<Name>'
This error usually occurs when an attempt is made to open up
a table or backup file and the operating system does not allow
access to the table or backup file due to the fact that it has
already been opened up exclusively by another application or
the same application or a user rights issue. A table can be
opened exclusively only once. It can also occur when an
attempt is made to open up a table for read/write access that
is in a read-only directory or on a read-only drive and not
marked as read-only as an attribute. Please see the Opening
Tables topic for more information. It is also possible that a
table's backup files cannot be overwritten during the
processing of altering the structure of a table, adding indexes
to a table or deleting indexes from a table, or optimizing a
table. Please see the Creating and Altering Tables, Adding and
Deleting Indexes from a Table, and Optimizing Tables topics
for more information.

Roy Lambert
Mon, Sep 3 2012 9:25 AMPermanent Link

Paul Waegemans

IMS

Problem is solved.  DBSRVR.exe was running in the root  of the server on which I'm hosting my databases and had not enough rights to create temp tables.

Ik placed BDSRVR.exe in a folderI named  Dbisamserver and when I run the server from this folder everything is working fine.  


Paul Waegemans wrote:

I have changed my application from local tot remote and I'am hosting now my database on a dedicated server (running Windows Server 2008 R2 Standard Edition) on wich I started dbsrvr.exe. Everything is working fine until the moment I want to ALTER a table to add a field using a sql statement

with dml.SqlAanpassen do
       begin
       databasename:=dml.tblwed_kalender.DatabaseName;
       if dml.tblwed_kalender.active=true then dml.tblwed_kalender.close;
       sql.clear;
       sql.add('ALTER TABLE wed_kalender ADD IF NOT EXISTS reekscategorie VARCHAR(30) ;');
       execsql;
       sql.clear;
       end;

In the log from the server I see the error  REQUEST_PREPARESTMT (see attachment)

What is the problem?

The sql statemant works correct in my local application.
Image