Strange, guess that it's more a problem of the DbType of the return, I noted
this to have a look

Cheers
-Gilles

On 9/13/07, Lee Shinlever <[EMAIL PROTECTED]> wrote:
>
>  It is the oddest thing. We actually modified the SPROC by removing the
> RETURN statement and just allowing the results of the SELECT to come back to
> iBatis. It wasn't until we remove the SELECT  @DateActive =
> DATEADD(minute,  -(@MinutesSinceLastInActive), @CurrentTimeUtc) line, did
> that calculation in our application code and passed it in as a parameter
> that it finally worked.
>
> For some reason iBatis just did not like that calculation being run inside
> the SPROC.
>
> Lee
>
> On Thu, 2007-09-13 at 13:55 -0400, Clough, Samuel (USPC.PRG.Atlanta)
> wrote:
>
> Maybe I don't understand this correctly, but are you trying to use SQL
> Server's ability to generate a result set from a stored proc call?  If you,
> I would say you should probably use a select element rather than a statement
> element so that iBatis expects a result set.  Otherwise, iBatis is probably
> expecting to return you the procedures return code or maybe the rows
> modified return from the database, I'm not sure.
>
>
>
>  *From:* Lee Shinlever [mailto:[EMAIL PROTECTED]
> *Sent:* Wednesday, September 12, 2007 4:27 PM
> *To:* [email protected]
> *Subject:* Return Results
>
>
>
>
> Greetings,
>
> Currently we are replacing all of the data access code in the ASP.NetSecurity 
> Providers using
> Spring.Net and iBatis.Net. Basically instead of implementing a custom
> provider each time security persistence needs changed we just use one
> provider and change its data access component (iBatisNet) as needed.
>
> We did run into one operation that just won't return the expected results
> no matter what we do short of modifying the actual stored procedure. We
> don't have a problem changing the SPROC to make it work but we were
> wondering if anyone could point out what might be happening here.
>
> *Components:*
> *    *1) SQL Server 2005
>      2) Visual Studio 2005
>      3) iBatisNet DataMapper 1.6.1.0
>
> *Original Stored Procedure:*
>
> ALTER PROCEDURE dbo.aspnet_Membership_GetNumberOfUsersOnline
>     @ApplicationName            nvarchar(256),
>     @MinutesSinceLastInActive   int,
>     @CurrentTimeUtc             datetime
> AS
> BEGIN
>     DECLARE @DateActive datetime
>     SELECT  @DateActive = DATEADD(minute,  -(@MinutesSinceLastInActive),
> @CurrentTimeUtc)
>
>     DECLARE @NumOnLine int
>
>     SELECT     @NumOnLine = Count(*)
>      FROM         aspnet_Users AS u WITH (NOLOCK) INNER JOIN
>                            aspnet_Applications AS a WITH (NOLOCK) ON
> u.ApplicationId = a.ApplicationId INNER JOIN
>                            aspnet_Membership AS m WITH (NOLOCK) ON
> u.UserId = m.UserId
>      WHERE     (u.LastActivityDate > [EMAIL PROTECTED]) AND (
> a.LoweredApplicationName = LOWER(@ApplicationName))
>
>    *return @NumOnLine*
>
> END
>
> *Statement:*
>     <procedure id="GetNumberOfUsersOnline"
>                resultClass="int"
>                parameterMap="GetNumberOfUsersOnline">
>       aspnet_Membership_GetNumberOfUsersOnline
>     </procedure>
>
> *Parameter Map:*
>     <parameterMap id="GetNumberOfUsersOnline" class="Hashtable">
>       <parameter property="ApplicationName" column="ApplicationName"
> dbType="string" size="256"/>
>       <parameter property="MinutesSinceLastInActive"
> column="MinutesSinceLastInActive" dbType="int"/>
>       <parameter property="CurrentTimeUtc" column="CurrentTimeUtc"
> dbType="DateTime"/>
>     </parameterMap>
>
> *DAO Code:  *
>
> ...snippet...
>       Hashtable parms = new Hashtable();
>       parms.Add("ApplicationName", applicationname);
>       parms.Add("MinutesSinceLastInactive", minutessincelastinactive);
>       parms.Add("CurrentTimeUtc", currenttimeutc);
>
>       int results = 0;
>
>       results = (int) 
> CustomMapper.Instance().QueryForObject("GetNumberOfUsersOnline",
> parms);
>
>       return results;
> ...snippet...
>
> *Testing:*
>     Using the same parameters, expected results = 2 ...
>     1) Removed the *return @NumOnLine* line
>     1) Ran the SPROC in the SQL debugger - SQL output results were fine
>     2) Ran the original DAO code using SQL command objects - SQL command
> results were fine
>     3) Ran our DAO code using iBatisNet - no results ever return
>     4) Change mapping file and DAO code to reflect using a Hashtable as
> the return class - iBatisNet did not return any results
>     5) Changed [EMAIL PROTECTED] to anything else (date value) - iBatisNet
> results were fine
>
>
> Thanks,
> Lee
>
>
>
>
>  ------------------------------
>
>  *Princeton Retirement Group, Inc - Important Terms *
>
> This E-mail is not intended for distribution to, or use by, any person or
> entity in any location where such distribution or use would be contrary to
> law or regulation, or which would subject Princeton Retirement Group, Inc.
> or any affiliate to any registration requirement within such location.
>
> This E-mail may contain privileged or confidential information or may
> otherwise be protected by work product immunity or other legal rules. No
> confidentiality or privilege is waived or lost by any mistransmission.
> Access, copying or re-use of information by non-intended or non-authorized
> recipients is prohibited. If you are not an intended recipient of this
> E-mail, please notify the sender, delete it and do not read, act upon,
> print, disclose, copy, retain or redistribute any portion of this E-mail.
>
> The transmission and content of this E-mail cannot be guaranteed to be
> secure or error-free. Therefore, we cannot represent that the information in
> this E-mail is complete, accurate, uncorrupted, timely or free of viruses,
> and Princeton Retirement Group, Inc. cannot accept any liability for E-mails
> that have been altered in the course of delivery. Princeton Retirement
> Group, Inc. reserves the right to monitor, review and retain all electronic
> communications, including E-mail, traveling through its networks and systems
> (subject to and in accordance with local laws). If any of your details are
> incorrect or if you no longer wish to receive mailings such as this by
> E-mail please contact the sender by reply E-mail.
>
>
>  ------------------------------
>
>


-- 
Cheers,
Gilles

<a href="http://www.amazon.com/gp/registry/6JCP7AORB0LE";>Wish List</a>

Reply via email to