I think that work-around may work for me.  Since I can declare a different
environment variable for the PHP script, with a new alias, that should work
fine.  Thanks for the suggestion.

- Bruce


Andrew Hill wrote:

> Bruce,
>
> It looks like you were on the right track initially, the problem is that PHP
> has a major bug - odbc_setoption is coded specific to ODBC statement handle
> (connection id), which means that trying to use odbc_setoption the way you
> want attempts to set a SQLSetConnectOption AFTER the connection is open -
> which is bogus and will give you ODBC function sequence errors.
>
> On the other hand, the error message you were getting is a bit misleading;
> we are fixing that now.
>
> So... you can unfortunately not do this via Application ID, but since you
> are using the OpenLink Rules Book, you can still affect Session-based
> connection management with any of the other connection criteria:
>
> Here is one way to do it:
> --------------------------------------
> Setup your session attributes by configuring the Session Rules Book Aliases
> section of the Multi-Tier OpenLink Admin Assistant.
> (http://servername:8000).
>
> You can configure session rules for any combination of Domain, Database,
> User, Operating System, Client Machine, Client Application, etc., and can
> control any connection options at the server side based on the session.
>
> Using "Database" as an example, add a Database Alias with a new database
> name and configure a session mapping rule to point to the original database
> name, but change the connection attributes from "Read / Write" to "Read
> Only" in the options for the  connection session.
>
> On the PHP side, simply choose between two DSN's in the odbc.ini - one is
> the "normal" DSN, with default settings, and one will have an alternate
> database name, "name_readonly" or somesuch, that will cause the oplrqb to
> instantiate the appropriate connection attributes.
>
> If you run into problems, you should probably open a support case at
> http://www.openlinksw.com/support/suppindx.htm, as this is getting somewhat
> off-topic for PHP.
>
> Hope this helps!
>
> Best regards,
> Andrew Hill
> Director of Technology Evangelism
> OpenLink Software  http://www.openlinksw.com
> Universal Data Access & Data Integration Technology Providers
>
> I was thinking of using the usernames, but as people come and go, that might
> mean messing around with the oplrqb.ini file too much.  I'd really like to
> do
> this based on application.  What variable do I pass with the PHP script?
> ( I'm
> not sure what you mean ).  Can I use a variable in PHP that passes the
> application name to the server?
>
> Thanks,
>
> Bruce
>
> Andrew Hill wrote:
>
> > Hi Bruce,
> >
> > The setoption error is being thrown because you cannot use
> > SQLSetConnectOption that way.
> > Passing arbitrary info to be used by your application isn't really what
> this
> > is for, but instead can be used to modify parameters in the ODBC API.
> >
> > This means you can modify things like SQL_ACCESS_MODE, SQL_AUTOCOMMIT,
> > SQL_ODBC_CURSORS, etc., (check the 2.x spec - there are several metadata
> > items that you can control with this API call.)
> >
> > I'd recommend you just pass a variable to your PHP script, and perhaps
> > change the username to a read-only/read-write user with  a case statement
> or
> > somesuch, based on the application.
> >
> > Again, I'd strongly recommend you upgrade the OpenLink UDA version as
> well;
> > 1.5 is something like 5 years old or more.
> >
> > Best regards,
> > Andrew Hill
> > Director of Technology Evangelism
> > http://www.openlinksw.com/virtuoso/whatis.htm
> > OpenLink Virtuoso Internet Data Integration Server
> >
> > > -----Original Message-----
> > > From: Bruce S. Garlock [mailto:[EMAIL PROTECTED]]
> > > Sent: Monday, March 25, 2002 10:48 AM
> > > To: [EMAIL PROTECTED]
> > > Subject: Re: [PHP-DB] ODBC -- Setting ApplicationID
> > >
> > >
> > > Sure, I'm simply trying to have PHP pass an ApplicationID to the
> > > ODBC server.
> > > When a PHP script access the ODBC database, it does not set the
> > > application:
> > >
> > > 10:46:04   connectopts= user=webuser opsys=unix machine=linux
> application=
> > >
> > > As you can see, application= is NULL.  I would like the script to pass
> > > something, so that my mapping rules on the server would allow
> > > write access to
> > > the db, if the PHP application sends a certain name.  Currently our
> Win32
> > > applications, like MS Access, send application names.  e.g. Access,
> sends:
> > > application=MSACCESS.
> > >
> > > Thanks for your help,
> > >
> > > Bruce
> > >
> > > Andrew Hill wrote:
> > >
> > > > Bruce,
> > > >
> > > > I'm not sure what you are trying to do - could you clarify?
> > > > You may be able to simply use the OpenLink Rules Book to set
> role-based
> > > > authentication on domain, ip, application, etc.
> > > >
> > > > Also, the ODBC Driver version (1.5) you are using is _very_ old and
> > > > unsupported.
> > > > I suggest you upgrade to 4.2
> > > >
> > > > Best regards,
> > > > Andrew Hill
> > > > Director of Technology Evangelism
> > > > OpenLink Software  http://www.openlinksw.com
> > > > Universal Data Access & Data Integration Technology Providers
> > > >
> > > > > -----Original Message-----
> > > > > From: Bruce S. Garlock [mailto:[EMAIL PROTECTED]]
> > > > > Sent: Thursday, March 21, 2002 11:02 AM
> > > > > To: [EMAIL PROTECTED]
> > > > > Subject: [PHP-DB] ODBC -- Setting ApplicationID
> > > > >
> > > > >
> > > > > I am trying to set the ApplicationID, when connecting to an ODBC
> > > > > datasource.  I have tried:
> > > > >
> > > > > odbc_setoption ($conn, 1, 1053, "PHPAPP");
> > > > >
> > > > > And get a:
> > > > >
> > > > > "SQL error: [iODBC][Driver Manager]Option type out of range, SQL
> state
> > > > > S1092 in SetConnectOption"
> > > > >
> > > > > Basically, I want my PHP script to pass the application name
> > > to the ODBC
> > > > > server, so that I can set up a mapping on the server that allows
> write
> > > > > access when a certain application string is sent.
> > > > >
> > > > > PHP 4.06 (with file-upload patch)
> > > > > Openlink ODBC 1.5
> > > > > Linux Client
> > > > > SCO Informix 5 server
> > > > >
> > > > >
> > > > > TIA-
> > > > >
> > > > > Bruce


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to