The design for the MTS component is done and I just implemented the design.
The object only has one method in it, it accepts a RDO connection object,
under this connection object, I need to create a temp table, insert a few
records. I commented out the database access part of code and put under MTS
package, setup the security option etc. Export the package, then installed
it on another PC, the client program can talk the component under MTS,
everything is OK.

Then I enabled the database access block of code, but this time it didn't
work, the line references the RDO connection object will fail, and the error
message is "permission denied 70", I commented out the database access code,
it works again.

The reason of pass RDO connection object is to create a temp table,
connection-based, then pass control back to the client, then the client app
can use the same RDO connection to fire off dynamic SQL, which uses the temp
table, such as join or subquery.

From the MTS design point of view, this might not be a good design, I can
pass a connection string, but the problem is any temp tables created under
the newly-created connection is not visible to client app.

Any help will be apprecaited.

PING

08-16-2000, 12:12 PM

ranga raghunathan

Re: Basic MTS Question - Error 70

hello
couple of things to try out
a) error 70 - permission denied will occur if dcom is not turned on on the
server where you are instantiating object .. go to start/run and type dcomcnfg
and click on default properties tab and make sure dcom is enabled on the
computer
b)in my opinion, if you want to get the temp table records to the client,
you can do so by passing the recordset back to the client .. i don't think
you can keep the connection object live in mts and then pass it back to the
client..you have to use design using disconnected recordsets
c) you can, create the connection object at the client side itself, use that
connection to create a temp table, and then create your dynamic sql that
uses the temp table -- all while the connection is live - it is not necessary
to use mts for everything.
d) if you are using vb for your client-side code, use ADO 2.1 or later

hope this helps
ranga
"PZ" <pzhuang@alphalink.com.au> wrote:
>Hi All,
>
>Just did my first MTS component and come into a security problem.
>
>The design for the MTS component is done and I just implemented the design.
>The object only has one method in it, it accepts a RDO connection object,
>under this connection object, I need to create a temp table, insert a few
>records. I commented out the database access part of code and put under
MTS
>package, setup the security option etc. Export the package, then installed
>it on another PC, the client program can talk the component under MTS,
>everything is OK.
>
>Then I enabled the database access block of code, but this time it didn't
>work, the line references the RDO connection object will fail, and the error
>message is "permission denied 70", I commented out the database access code,
>it works again.
>
>The reason of pass RDO connection object is to create a temp table,
>connection-based, then pass control back to the client, then the client
app
>can use the same RDO connection to fire off dynamic SQL, which uses the
temp
>table, such as join or subquery.
>
>From the MTS design point of view, this might not be a good design, I can
>pass a connection string, but the problem is any temp tables created under
>the newly-created connection is not visible to client app.
>
>Any help will be apprecaited.
>
>
>PING
>
>
>

08-19-2000, 10:12 AM

Ping Zhuang

Re: Basic MTS Question - Error 70

Thanks Ranga for all these help.

I solved the "permission denied" error, it's related to the component
security setting. I will later test this under different situations as you
pointed out.

I found this news group very useful and I learned a lot by browsing it.
Thanks for everyone posting messages here.

I have been working on serveral client server system, particularly on WAN,
the link speed is one of concerns in terms of application design, what we
did is to cut down the data passing between the client app and server.

When I pass a RDO connection object, it looks like uesless under MTS
context, I can not use this connection to query data, let alone to create
temp table.

The reason to create a temp table is to hold data, this data is not from
client side, it's from some data source at server level, I don't want to
pass this data set back to client app, then the client app use "see" this
temp table under the same connection.

As you pointed out at C), at client side, I can create connection as well as
the temp table, then I call MTS object, but the MTS object can not see this
particular temp table, this is same as traditional client server
application.

Now I have to change this design and not using a connection-based temp
table, I create a physical table, populate the table with a special key,
then pass the number of records inserted and the key back to the client app.

Another thing is I don't know how many records to be inserted, so I can not
pass this data set back to client app, if I know how many records involved
or limited, I can pass back an array or recordset, same as you suggested.

Thanks,

PZ

ranga raghunathan <ranga1@msn.com> wrote in message
news:399abd72$1@news.devx.com...
>
> hello
> couple of things to try out
> a) error 70 - permission denied will occur if dcom is not turned on on the
> server where you are instantiating object .. go to start/run and type
dcomcnfg
> and click on default properties tab and make sure dcom is enabled on the
> computer
> b)in my opinion, if you want to get the temp table records to the client,
> you can do so by passing the recordset back to the client .. i don't think
> you can keep the connection object live in mts and then pass it back to
the
> client..you have to use design using disconnected recordsets
> c) you can, create the connection object at the client side itself, use
that
> connection to create a temp table, and then create your dynamic sql that
> uses the temp table -- all while the connection is live - it is not
necessary
> to use mts for everything.
> d) if you are using vb for your client-side code, use ADO 2.1 or later
>
> hope this helps
> ranga
> "PZ" <pzhuang@alphalink.com.au> wrote:
> >Hi All,
> >
> >Just did my first MTS component and come into a security problem.
> >
> >The design for the MTS component is done and I just implemented the
design.
> >The object only has one method in it, it accepts a RDO connection object,
> >under this connection object, I need to create a temp table, insert a few
> >records. I commented out the database access part of code and put under
> MTS
> >package, setup the security option etc. Export the package, then
installed
> >it on another PC, the client program can talk the component under MTS,
> >everything is OK.
> >
> >Then I enabled the database access block of code, but this time it didn't
> >work, the line references the RDO connection object will fail, and the
error
> >message is "permission denied 70", I commented out the database access
code,
> >it works again.
> >
> >The reason of pass RDO connection object is to create a temp table,
> >connection-based, then pass control back to the client, then the client
> app
> >can use the same RDO connection to fire off dynamic SQL, which uses the
> temp
> >table, such as join or subquery.
> >
> >From the MTS design point of view, this might not be a good design, I can
> >pass a connection string, but the problem is any temp tables created
under
> >the newly-created connection is not visible to client app.
> >
> >Any help will be apprecaited.
> >
> >
> >PING
> >
> >
> >
>