Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread DBISAM CreateTable and Vista over LAN
Tue, Jan 5 2010 2:04 PMPermanent Link

Norman L. Kleinberg
I'm using 4.26 Build 3 on a LAN with a DBServer running on Vista Business on one of the machines. The DBServer is not running as a Service, rather it is
started by using "Run as Administrator" from the Desktop.

My Delphi 2006 application is on a Windows XP Pro computer on the same LAN and tries to create a database on the server machine by using an encrypted
remote session (through the Admin port) to add the database to the server via AddRemoteDatabase (the folder housing the tables is pre-defined on the
server). It then uses the Default session via a UNC path to create the empty data tables via repeated calls to CreateTable. My problem is that, while the
Database is created fine in the server the tables don't seem to be created in the folder on the server. In particular, it seems that a FEW tables are created
but then the application just hangs (either that or the creation is EXTREMELY slow, enough so that it is essentially equivalent to hanging). Trying to delete
the tables via Windows Explorer on the Vista machine results in a condition where even Task Manager can't end the Explorer session and I have to do a
hard reboot. To try to track this down I've set the folder permissions on the Vista machine to Full Control for Everyone. Still no go. Creating the tables by
running the app on the Vista machine itself is fine. however. I repeated the experiment, this time putting the DBServer on another XP Pro machine on the
network and this time the tables get created with no problem.

I'm willing to admit I'm missing something and should be ashamed, but I can't figure out what (granted, I haven't tried turning off UAC on the Vista
machine but figure that really should have no effect).  Any pointers or experiments to run would be appreciated.
Tue, Jan 5 2010 2:21 PMPermanent Link

"Robert"

"Norman L. Kleinberg" <nlkleinberg@hotmail.com> wrote in message
news:F1EBD922-0A20-4CD2-BAF4-8733BB5D5AC3@news.elevatesoft.com...
> I'm using 4.26 Build 3 on a LAN with a DBServer running on Vista Business
> on one of the machines. The DBServer is not running as a Service, rather
> it is
> started by using "Run as Administrator" from the Desktop.
>
> My Delphi 2006 application is on a Windows XP Pro computer on the same LAN
> and tries to create a database on the server machine by using an encrypted
> remote session (through the Admin port) to add the database to the server
> via AddRemoteDatabase (the folder housing the tables is pre-defined on the
> server). It then uses the Default session via a UNC path to create the
> empty data tables via repeated calls to CreateTable. My problem is that,
> while the

You need to use the remote session. The server will know where the database
is located.

Robert


Tue, Jan 5 2010 4:00 PMPermanent Link

Norman L. Kleinberg
"Robert" wrote:


"Norman L. Kleinberg" <nlkleinberg@hotmail.com> wrote in message
news:F1EBD922-0A20-4CD2-BAF4-8733BB5D5AC3@news.elevatesoft.com...
> I'm using 4.26 Build 3 on a LAN with a DBServer running on Vista Business
> on one of the machines. The DBServer is not running as a Service, rather
> it is
> started by using "Run as Administrator" from the Desktop.
>
> My Delphi 2006 application is on a Windows XP Pro computer on the same LAN
> and tries to create a database on the server machine by using an encrypted
> remote session (through the Admin port) to add the database to the server
> via AddRemoteDatabase (the folder housing the tables is pre-defined on the
> server). It then uses the Default session via a UNC path to create the
> empty data tables via repeated calls to CreateTable. My problem is that,
> while the

You need to use the remote session. The server will know where the database
is located.

Robert:

Just to be sure, you're saying that I should set the "Session Name" property of the TDBISAMTable I'm going to create with "CreateTable" to the name of
the remote session I used to create the database in the Server? I think I had tried that with not too much success but I could be wrong and will certainly
try again.

Just for my information, since I have no problem with creating the tables on the XP machine, is this a way of getting around some permission issues on
Vista (because the Server is running on that machine)?

Thanks for the post.


Norman
Tue, Jan 5 2010 4:12 PMPermanent Link

"Robert"

"Norman L. Kleinberg" <nlkleinberg@hotmail.com> wrote in message
news:EB811897-8B4D-4893-80B5-F36487F7AEBA@news.elevatesoft.com...
>
> Just to be sure, you're saying that I should set the "Session Name"
> property of the TDBISAMTable I'm going to create with "CreateTable" to the
> name of
> the remote session I used to create the database in the Server? I think I
> had tried that with not too much success but I could be wrong and will
> certainly
> try again.
>

Not necessarily the same session, but you need a remote session, a database
linked to it, then the table component needs to be connected to the sesiion
and to the database. (in that order). When you're using C/S, you're not
supposed to know where the database is at. You just access it via database
name (in the database component), the server takes care of translating that
to a physical location. If you still have truble, post again and I'll post
some code that should make it clear.

> Just for my information, since I have no problem with creating the tables
> on the XP machine, is this a way of getting around some permission issues
> on
> Vista (because the Server is running on that machine)?
>

I don't think it is the same issue at all.

Robert

> Thanks for the post.
>
>
> Norman
>

Tue, Jan 5 2010 4:22 PMPermanent Link

Norman L. Kleinberg
Oh, OK, thanks, I'll fiddle around with it.

What you say certainly makes sense, I would think with client/server the details should be hidden within the server itself, but there was no specific
AddRemoteTable command (Smile so I thought the way to go was "behind the scenes". That's why I tried it with the server on XP before I even posted.

I'll get back to you if I still have issues.

Appreciate your help.
Tue, Jan 5 2010 5:06 PMPermanent Link

"Robert"

"Norman L. Kleinberg" <nlkleinberg@hotmail.com> wrote in message
news:90C24269-9880-432F-886C-F455F2C23E1A@news.elevatesoft.com...
> Oh, OK, thanks, I'll fiddle around with it.
>
> What you say certainly makes sense, I would think with client/server the
> details should be hidden within the server itself, but there was no
> specific
> AddRemoteTable command (Smile so I thought the way to go was "behind the
> scenes". That's why I tried it with the server on XP before I even posted.
>

One of the (many) beauties of DBISAM is that you can switch from file
sharing to C/S just by changing a couple of properties on a couple of
components. At the tTable and tQuery level, everything is exactly (well,
almost in the case of SQL) the same.

Robert

Tue, Jan 5 2010 6:22 PMPermanent Link

Norman L. Kleinberg
"Robert" wrote:


"Norman L. Kleinberg" <nlkleinberg@hotmail.com> wrote in message
news:90C24269-9880-432F-886C-F455F2C23E1A@news.elevatesoft.com...
> Oh, OK, thanks, I'll fiddle around with it.
>
> What you say certainly makes sense, I would think with client/server the
> details should be hidden within the server itself, but there was no
> specific
> AddRemoteTable command (Smile so I thought the way to go was "behind the
> scenes". That's why I tried it with the server on XP before I even posted.
>

One of the (many) beauties of DBISAM is that you can switch from file
sharing to C/S just by changing a couple of properties on a couple of
components. At the tTable and tQuery level, everything is exactly (well,
almost in the case of SQL) the same.


Robert:

I'm obviously doing something wrong. When I execute CreateTable(MyTable) with MyTable's DatabaseName set to the Database Name on the server I get
Error 11308 "Invalid or unknown request...". MyTable's session name is set to the same session through which I successfully added the Database to the
server and the current user to that Database. So the session's properties appear to be set correctly.

Would you be so kind as to post a code snippet that might give me an idea what I'm missing?

Thanks.


Norman
Tue, Jan 5 2010 7:06 PMPermanent Link

"Robert"

"Norman L. Kleinberg" <nlkleinberg@hotmail.com> wrote in message
news:F0B6397C-F216-45FC-8C2F-638DA39D66BC@news.elevatesoft.com...
>
> I'm obviously doing something wrong. When I execute CreateTable(MyTable)
> with MyTable's DatabaseName set to the Database Name on the server I get
> Error 11308 "Invalid or unknown request...". MyTable's session name is set
> to the same session through which I successfully added the Database to the
> server and the current user to that Database. So the session's properties
> appear to be set correctly.

Sessiontype := stRemote;
RemoteEncryption := false;
RemotePort := 12005;
database.remotedatabase := whatever;


has to be something like that. It's really pretty simple stuff, you're
overlooking something obvious.

Can you connect to the remote database using dbsys?

Robert


Wed, Jan 6 2010 9:28 AMPermanent Link

Norman L. Kleinberg
"Robert" wrote:


Sessiontype := stRemote;
RemoteEncryption := false;
RemotePort := 12005;
database.remotedatabase := whatever;


has to be something like that. It's really pretty simple stuff, you're
overlooking something obvious.

Can you connect to the remote database using dbsys?

Robert:

Yup, no problem with DBSYS or DBAdmin. Also, as I say, I have no problem adding the database to the server and adding the user to the database, all in
code through a remote session (BTW, I need to connect through the Admin port and set RemoteEncryption to True). Maybe I'm overlooking
that "RemoteDatabase" property of the database, since I don't use a separate Database component. As I say, the Session is a remote session pointing to
that server but I just set the parameter of CreateDatabase to the Database Name on the server.

Let me investigate further.

Thanks.


Norman
Image