473,399 Members | 4,177 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,399 software developers and data experts.

Not an ad hoc query?

I have an odbc application that is designed to use an application role.
The role has been set up already outside the application and it exists
in the database. The application is getting the following error:

Application roles can only be activated at the ad hoc level.
This is the first sql statement issued to the database after connection.
It is a direct exec sp_setapprole statement and not issued from within
a stored proc. I am not sure what is going on.

Any help will be much appreciated.
N.
Jun 27 '08 #1
5 4105
Application roles can only be activated at the ad hoc level.
>

This is the first sql statement issued to the database after connection.
It is a direct exec sp_setapprole statement and not issued from within a
stored proc. I am not sure what is going on.
My guess is the the sp_setapprole is being wrapped by the API (e.g.
sp_prepare, sp_executesql). You can run a Profiler trace to see what's
going on. Perhaps a solution is to execute the statement as command text
instead of a prepared statement.

--
Hope this helps.

Dan Guzman
SQL Server MVP
http://weblogs.sqlteam.com/dang/

"nambia05" <na******@yahooo.comwrote in message
news:g2**********@aioe.org...
>I have an odbc application that is designed to use an application role. The
role has been set up already outside the application and it exists in the
database. The application is getting the following error:

Application roles can only be activated at the ad hoc level.
This is the first sql statement issued to the database after connection.
It is a direct exec sp_setapprole statement and not issued from within a
stored proc. I am not sure what is going on.

Any help will be much appreciated.
N.
Jun 27 '08 #2
Dan Guzman wrote:
>
My guess is the the sp_setapprole is being wrapped by the API (e.g.
sp_prepare, sp_executesql). You can run a Profiler trace to see what's
going on. Perhaps a solution is to execute the statement as command
text instead of a prepared statement.

I will see what the profiler trace turns up. In the meantime, how do I
run the statement as command text? Do you have a simple example that
you can share?
Thank you,
N.
Jun 27 '08 #3
I will see what the profiler trace turns up. In the meantime, how do I
run the statement as command text? Do you have a simple example that you
can share?
With ADO, instead of :

command.CommandText = "EXEC dbo.sp_setapprole ?, ?"

try

command.CommandText = "EXEC dbo.sp_setapprole 'MyRole', 'MyRolePassword'"
Similarly, you ought to be able to use a stored procedure command type:

command.CommandType = adCmdStoredProcedure
command.CommandText = "dbo.sp_setapprole"

Set roleNameParameter = command.CreateParameter("@rolename")
roleNameParameter.Type = adVarWChar
roleNameParameter.Direction = adParamInput
roleNameParameter.Size = 8
roleNameParameter.Value = "RoleName"
command.Parameters.Append roleNameParameter

Set rolePasswordParameter = command.CreateParameter("@password")
rolePasswordParameter.Type = adVarWChar
rolePasswordParameter.Direction = adParamInput
rolePasswordParameter.Size = 12
rolePasswordParameter.Value = "RolePassword"
command.Parameters.Append rolePasswordParameter

Both of the above methods should avoid the ad-hoc parameterized statement.
Of course, you will need to adapt for the language and API you are using.
--
Hope this helps.

Dan Guzman
SQL Server MVP
http://weblogs.sqlteam.com/dang/

"nambia05" <na******@yahooo.comwrote in message
news:g2**********@aioe.org...
Dan Guzman wrote:
>>
My guess is the the sp_setapprole is being wrapped by the API (e.g.
sp_prepare, sp_executesql). You can run a Profiler trace to see what's
going on. Perhaps a solution is to execute the statement as command text
instead of a prepared statement.


I will see what the profiler trace turns up. In the meantime, how do I
run the statement as command text? Do you have a simple example that you
can share?
Thank you,
N.
Jun 27 '08 #4
Dan Guzman wrote:
try

command.CommandText = "EXEC dbo.sp_setapprole 'MyRole', 'MyRolePassword'"
Similarly, you ought to be able to use a stored procedure command type:

Thanks! I am trying to get it working from a C++/ODBC library that our
architecture group has developed. No luck yet but I am working on it.
I have a question: What gets authenticated to the server? Is it the
connection itself that assumes the application role or is it the
application itself? For example, I connect to the server and issue
sp_setapprole. Does my entire application assume the application role,
or is it just that one connection? What if I open another connection to
the server? Do I need to run sp_setapprole again?
Jun 27 '08 #5
nambia05 (na******@yahooo.com) writes:
I have a question: What gets authenticated to the server? Is it the
connection itself that assumes the application role or is it the
application itself? For example, I connect to the server and issue
sp_setapprole. Does my entire application assume the application role,
or is it just that one connection? What if I open another connection to
the server? Do I need to run sp_setapprole again?
It's only the connection.
--
Erland Sommarskog, SQL Server MVP, es****@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pro...ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinf...ons/books.mspx
Jun 27 '08 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: jaysonsch | last post by:
Hello! I am having some problems with a database query that I am trying to do. I am trying to develop a way to search a database for an entry and then edit the existing values. Upon submit, the...
29
by: shank | last post by:
1) I'm getting this error: Syntax error (missing operator) in query expression on the below statement. Can I get some advice. 2) I searched ASPFAQ and came up blank. Where can find the "rules"...
9
by: netpurpose | last post by:
I need to extract data from this table to find the lowest prices of each product as of today. The product will be listed/grouped by the name only, discarding the product code - I use...
3
by: Harvey | last post by:
Hi, I try to write an asp query form that lets client search any text-string and display all pages in my web server that contain the text. I have IIS 6.0 on a server 2003. The MSDN site says...
4
by: Diamondback | last post by:
I have two tables, WIDGETS and VERSIONS. The WIDGETS table has descriptive information about the widgets while the VERSIONS table contains IDs relating to different iterations of those widgets...
14
by: Dave Thomas | last post by:
If I have a table set up like this: Name | VARCHAR Email | VARCHAR Age | TINYINT | NULL (Default: NULL) And I want the user to enter his or her name, email, and age - but AGE is optional. ...
0
by: starace | last post by:
I have designed a form that has 5 different list boxes where the selections within each are used as criteria in building a dynamic query. Some boxes are set for multiple selections but these list...
6
by: jjturon | last post by:
Can anyone help me?? I am trying to pass a Select Query variable to a table using Dlookup and return the value to same select query but to another field. Ex. SalesManID ...
4
by: Stan | last post by:
I am using MS Office Access 2003 (11.5614). My basic question is can I run a query of a query datasheet. I want to use more that one criteria and can not get that query to work. I thought I...
6
by: jsacrey | last post by:
Hey everybody, got a secnario for ya that I need a bit of help with. Access 97 using linked tables from an SQL Server 2000 machine. I've created a simple query using two tables joined by one...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.