﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » .NET Forums » General .NET Discussion  » Getting a Return Value from a Stored Procedure</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Fri, 29 May 2026 13:16:30 GMT</lastBuildDate><ttl>20</ttl><item><title>Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29094.aspx</link><description>&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;I have the following Stored Proc (&lt;strong&gt;I am not sure it is correct&lt;/strong&gt;). I just am trying to see if there are any duplicates in the table.&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;CREATE PROCEDURE [dbo].[sp_CountSRStockforDups]&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;	&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;-- Add the parameters for the stored procedure here&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;	&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;@myRowCount int = 0 OUTPUT&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;AS&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;BEGIN&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;	&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;-- SET NOCOUNT ON added to prevent extra result sets from&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;	&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;-- interfering with SELECT statements.&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;	&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;SET NOCOUNT ON;&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;-- Insert statements for procedure here&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;	&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;select stock, count(stock) as pen from dbo.SRstocks where stock &amp;gt; 0 group by stock having (count(stock)) &amp;gt; 1&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;	&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;select @myRowCount = @@ROWCOUNT&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;	&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;return @myRowCount&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;END&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;I know I have 2 records that repeat but with the following code it returns zero(0).?&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;pre style="font-family: consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue"&gt;Dim&lt;/span&gt;&amp;nbsp;nret&amp;nbsp;&lt;span style="color: blue"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;Integer&lt;/span&gt;&amp;nbsp;=&amp;nbsp;1000&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue"&gt;Dim&lt;/span&gt;&amp;nbsp;cmd&amp;nbsp;&lt;span style="color: blue"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af"&gt;SqlCommand&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"sp_CountSRStockforDups"&lt;/span&gt;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandType&amp;nbsp;=&amp;nbsp;Data.&lt;span style="color: #2b91af"&gt;CommandType&lt;/span&gt;.StoredProcedure&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green"&gt;'&amp;nbsp;OutPut&amp;nbsp;Parameter&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.Parameters.Add(&lt;span style="color: #a31515"&gt;"@myRowCount"&lt;/span&gt;,&amp;nbsp;Data.&lt;span style="color: #2b91af"&gt;SqlDbType&lt;/span&gt;.Int).Direction&amp;nbsp;=&amp;nbsp;Data.&lt;span style="color: #2b91af"&gt;ParameterDirection&lt;/span&gt;.Output&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nret&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue"&gt;CType&lt;/span&gt;(cmd.Parameters(&lt;span style="color: #a31515"&gt;"@myRowCount"&lt;/span&gt;).Value,&amp;nbsp;&lt;span style="color: blue"&gt;Integer&lt;/span&gt;)&lt;/pre&gt;&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;Please understand I am not sure any of this is correct except the attached picture seems to indicate that my stored proc is working but any help would be appreciated. TIA&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;/font&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#1F5080" face="verdana, arial, tahoma" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/font&gt;</description><pubDate>Tue, 30 Nov 2010 15:13:45 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29130.aspx</link><description>[quote][b]Gerard O Carroll (11/30/2010)[/b][hr]This might sound like a silly question but I 'Asumed' that a primary key field in SQL 'had' to be unique and you could not have duplicates ?. This must'nt be the case if you have written a routine to validate it ??&amp;nbsp;[/quote]&lt;br/&gt;&lt;br/&gt;Hi Gerard,&lt;br/&gt;&lt;br/&gt;Nothing silly about it.&amp;nbsp; Even thought you may come across an Integer PK which is not auto incremented by the database, but you are right.&amp;nbsp; That was a code I wrote fast without testing for Terry, but was corrected in the following messages.</description><pubDate>Tue, 30 Nov 2010 15:13:45 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29128.aspx</link><description>Hi Edhy.&lt;br/&gt;&lt;br/&gt;This might sound like a silly question but I 'Asumed' that a primary key field in SQL 'had' to be unique and you could not have duplicates ?. This must'nt be the case if you have written a routine to validate it ??&amp;nbsp;</description><pubDate>Tue, 30 Nov 2010 15:05:15 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29123.aspx</link><description>Yeap you are now in the right track, so go for it.&amp;nbsp; Also for your current BO all you need to do is change the Inherits to your new base BO, the same thing applies to forms and other controls.</description><pubDate>Mon, 29 Nov 2010 21:29:13 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29122.aspx</link><description>So let me get this straight.&amp;nbsp;&lt;div&gt;&lt;ol&gt;&lt;ol&gt;&lt;li&gt;I create a BO (say BaseBO) and I don't map it to any table.&lt;/li&gt;&lt;li&gt;I then add MY Functions, Sub Routines and whatever to my BaseBO.&lt;/li&gt;&lt;li&gt;Once I have 1 and 2 done Then when I create a new BO I change the Inherits MicroFour.Strataframe.Business.BusinessLayer&lt;/li&gt;&lt;li&gt;to Inherits Rodeo.Business.BaseBO Where Rodeo is I believe my Namespace.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div&gt;TIA.</description><pubDate>Mon, 29 Nov 2010 20:50:07 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29121.aspx</link><description>Hi Terry,&lt;br/&gt;&lt;br/&gt;Yes, there are some sample code in the forums, probably Ivan (the Google expert) may provide some links, but basically this what you have to do:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Create a BO class and do not map it to any of your tables.&amp;nbsp; You could name it whatever you want, I name mine "ApplicationBaseBusinessClass.vb"&lt;/li&gt;&lt;li&gt;Add all the custom, generic code you expect to use in all your BOs like the ones I posted here.&amp;nbsp; Also if you use some custom field properties in all your BO with the same name, here is a good place to have them all.&lt;/li&gt;&lt;li&gt;In your current and new BO, change the "Inherits" statement from:&lt;/li&gt;&lt;/ol&gt;&lt;span&gt;[quote]&lt;br/&gt;&lt;/span&gt;&lt;pre style="font-family: consolas;"&gt;&lt;span style="color: blue;"&gt;     Inherits&lt;/span&gt;&amp;nbsp;MicroFour.StrataFrame.Business.&lt;span style="color: rgb(43, 145, 175);"&gt;BusinessLayer&lt;/span&gt;&lt;br/&gt;to&lt;br/&gt;     &lt;span style="color: blue;"&gt;Inherits&lt;/span&gt;&amp;nbsp;&lt;span style="font-weight: bold;"&gt;CardTrackingSystem&lt;/span&gt;.Business.&lt;span style="color: rgb(43, 145, 175);"&gt;ApplicationBaseBusinessClass&lt;/span&gt;&lt;br/&gt;&lt;/pre&gt;&lt;span&gt;[/quote]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Of course in the sample above the namespace "CardTrackingSystem" should be replace with your own NameSpace.&amp;nbsp; After that, recompile your project and start having fun with your base BO class.</description><pubDate>Mon, 29 Nov 2010 16:21:09 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29120.aspx</link><description>Is there some where I can find a basic subclass of the BO that has Everything that is needed to make it work so I can start adding some of these functions and not have to do it on Every BO?&lt;div&gt;Thanks in Advance.</description><pubDate>Mon, 29 Nov 2010 15:53:52 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29119.aspx</link><description>[quote][b]Charles R Hankey (11/29/2010)[/b][hr](... reading that over it probably doesn't make any sense unless you've been playing with TVPs but for anybody who has, the TVP as empty table if no param is passed came as a surprise to me and somebody may find it useful )[/quote]&lt;br/&gt;Hi Charles,&lt;br/&gt;&lt;br/&gt;I have not worked with a &lt;span id="ctl00_ctlContentPlaceHolder_ctl00_ctlTopic_ctlPanelBar_ctlTopicsRepeater_ctl02_lblFullMessage"&gt;TVP yet.&amp;nbsp; I have a consultant "&lt;a href="http://forum.strataframe.net/Topic28216.aspx"&gt;Uri Dimant&lt;/a&gt;" which is a MS SQL MVP which helps me with those deep needs and even though he is pretty good explaining this type of things with MS-SQL, sometimes I don't have the luxury to pay to much of attention to details.&amp;nbsp; He has created some complex stored procedures to deal with millions of records and re-factored those couple of times to take advantage of new functionality of MS-SQL 2008 R2.&amp;nbsp; In case you or anyone needs serious help with any MS-SQL problem, feel free to contact him.&lt;br/&gt;&lt;/span&gt;</description><pubDate>Mon, 29 Nov 2010 14:51:30 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29118.aspx</link><description>[quote][b]Terry Bottorff (11/29/2010)[/b][hr]...but now with &lt;strong&gt;All of the Great Ideas&lt;/strong&gt; I will be looking to change almost all of my fill routines.&amp;nbsp;[/quote]&lt;br/&gt;&lt;br/&gt;Hi Terry,&lt;br/&gt;&lt;br/&gt;I've been there, done that! Welcome to the club &lt;span&gt;:hehe:&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Glad you find it useful.</description><pubDate>Mon, 29 Nov 2010 14:42:18 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29117.aspx</link><description>I think your idea of an array for multiple fields is very good, especially in keeping the function as generic as possible.&lt;br/&gt;&lt;br/&gt;Just as an aside :&amp;nbsp; I've been working a lot with using table value parameters in stored procedures and I'm really interested to find that unlike other type of params, you don't need to account for *not* passing the param - the TVP in the sproc will just be an empty table.&amp;nbsp; Interesting in that you can write where clauses in the sproc that let you receive either a single or TVP param for comparison and it will work depending on what you pass in.&amp;nbsp; &lt;br/&gt;&lt;br/&gt;( reading that over it probably doesn't make any sense unless you've been playing with TVPs but for anybody who has, the TVP as empty table if no param is passed came as a surprise to me and somebody may find it useful )</description><pubDate>Mon, 29 Nov 2010 14:29:42 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29116.aspx</link><description>I did find the Primary Key problem and I was able to change that but now with &lt;strong&gt;All of the Great Ideas&lt;/strong&gt; I will be looking to change almost all of my fill routines.&amp;nbsp;</description><pubDate>Mon, 29 Nov 2010 13:42:59 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29112.aspx</link><description>[quote][b]Charles R Hankey (11/29/2010)[/b][hr]This looks good.&amp;nbsp; Also, if you pass a comma separated list of fields to the fieldname param it will work fine for defining a dupe based on multiple fields [/quote]&lt;br/&gt;&lt;br/&gt;Charles, I agree, but I would prefer a param array and then check if Column Exist for each one before executing the query.&amp;nbsp; Also a 2nd optional parameter could be use to handle "WHERE conditions like in Terry's case.&lt;br/&gt;&lt;br/&gt;So far, I did not have the need for such checking, but since I work on multiple projects at the same time, I like to have my code as generic as possible so it can be reused in all projects, even though I do not have a common assembly for all projects just yet &lt;span&gt;:angry:&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;I am still learning this stuff which always amaze me with simple things and the .Net/SF approach to handle them.&amp;nbsp; Pure and simple, I just love SF at the same level I loved VFP and my previous framework.&amp;nbsp; It feels good being comfortable with a tool and I am at that level with StrataFrame now.&amp;nbsp; (hmmm, Trent, that does not mean I am totally settle,&amp;nbsp; I still want to see the new StrataListView completed with the automation stuff &lt;span&gt;:rolleyes:&lt;/span&gt;)</description><pubDate>Mon, 29 Nov 2010 11:42:07 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29111.aspx</link><description>This looks good.&amp;nbsp; Also, if you pass a comma separated list of fields to the fieldname param it will work fine for defining a dupe based on multiple fields &lt;br/&gt;&lt;br/&gt;Dim fieldlist as string = "field1, field2, field3"&lt;br/&gt;&lt;br/&gt;then pass fieldlist as the param.</description><pubDate>Mon, 29 Nov 2010 11:28:32 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29110.aspx</link><description>Hi Charles,&lt;br/&gt;&lt;br/&gt;I had to do the test this time, since it is not productive posting without testing, but sometimes, there is not much time to get everything right the first time &lt;span&gt;:D&lt;/span&gt;&amp;nbsp; so here is a generic statement that will check for duplicate for a single field, of course this could be enhanced to go deeper with multiple fields and "WHERE" conditions per needs like in Terry's case in which he needs a WHERE condition.&lt;br/&gt;&lt;span&gt;[quote]&lt;br/&gt;&lt;/span&gt;&lt;pre style="font-family: consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Function&lt;/span&gt;&amp;nbsp;DuplicateRecordFound(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;FieldName&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;)&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Boolean&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.CheckColumnExists(&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.CurrentDataTable,&amp;nbsp;FieldName,&amp;nbsp;&lt;span style="color: blue;"&gt;GetType&lt;/span&gt;(&lt;span style="color: blue;"&gt;String&lt;/span&gt;))&amp;nbsp;&lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Exit&amp;nbsp;Function&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Create&amp;nbsp;the&amp;nbsp;SqlCommand&amp;nbsp;with&amp;nbsp;an&amp;nbsp;Using&amp;nbsp;to&amp;nbsp;automatically&amp;nbsp;dispose&amp;nbsp;it.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Using&lt;/span&gt;&amp;nbsp;cmd&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;SqlCommand&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandType&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;CommandType&lt;/span&gt;.Text&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandText&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;.Format(&lt;span style="color: rgb(163, 21, 21);"&gt;"SELECT&amp;nbsp;COUNT(*)&amp;nbsp;FROM&amp;nbsp;{1}&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;{0}&amp;nbsp;HAVING&amp;nbsp;COUNT(*)&amp;nbsp;&amp;gt;&amp;nbsp;0"&lt;/span&gt;,&amp;nbsp;FieldName,&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.TableNameAndSchema)&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Execute&amp;nbsp;the&amp;nbsp;query&amp;nbsp;and&amp;nbsp;return&amp;nbsp;the&amp;nbsp;value&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Return&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;CType&lt;/span&gt;(&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.ExecuteScalar(cmd),&amp;nbsp;&lt;span style="color: blue;"&gt;Integer&lt;/span&gt;)&amp;nbsp;&amp;gt;&amp;nbsp;1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Using&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Function&lt;/span&gt;&lt;/pre&gt;&lt;span&gt;[/quote]&lt;br/&gt;&lt;br/&gt;Here is a sample on how to call the function in the BO.&amp;nbsp; Of course if you have this function in your base BO it will be available to all of them and just need to pass the field name to check for duplicate:&lt;br/&gt;&lt;span&gt;[quote]&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre style="font-family: consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.BizCompany1.DuplicateRecordFound(bizCompany.bizCompanyFieldNames.CompanyName.ToString)&amp;nbsp;&lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: rgb(163, 21, 21);"&gt;"Duplicate&amp;nbsp;found."&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(163, 21, 21);"&gt;"Duplicate&amp;nbsp;check"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBoxButtons&lt;/span&gt;.OK,&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBoxIcon&lt;/span&gt;.Error)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Else&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: rgb(163, 21, 21);"&gt;"No&amp;nbsp;duplicates&amp;nbsp;found."&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(163, 21, 21);"&gt;"Duplicate&amp;nbsp;check"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBoxButtons&lt;/span&gt;.OK,&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBoxIcon&lt;/span&gt;.Information)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Using&lt;/span&gt;&amp;nbsp;bo&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;bizCompany&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&amp;nbsp;bo.DuplicateRecordFound(bizCompany.bizCompanyFieldNames.CompanyName.ToString)&amp;nbsp;&lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: rgb(163, 21, 21);"&gt;"Duplicate&amp;nbsp;found."&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(163, 21, 21);"&gt;"Duplicate&amp;nbsp;check"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBoxButtons&lt;/span&gt;.OK,&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBoxIcon&lt;/span&gt;.Error)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Else&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: rgb(163, 21, 21);"&gt;"No&amp;nbsp;duplicates&amp;nbsp;found."&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(163, 21, 21);"&gt;"Duplicate&amp;nbsp;check"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBoxButtons&lt;/span&gt;.OK,&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;MessageBoxIcon&lt;/span&gt;.Information)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Using&lt;/span&gt;&lt;br/&gt;&lt;/pre&gt;&lt;span&gt;&lt;span&gt;[/quote]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Terry, notice that in above sample code I am not passing the field name as literal string "Field Name" or "CompanyName", instead I am taking advantage of the business object field name enumeration which will be named after your bo+FieldNames, this is used, so if you change a field name later on, at least Visual Studio will warn you at compilation giving you the chance to correct the field name before building your application.&lt;br/&gt;&lt;br/&gt;Charles, thanks again, for looking into the code and your suggestions, greatly appreciated as always.&amp;nbsp; Now back to work, hope this test pass &lt;span&gt;:hehe:&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;</description><pubDate>Mon, 29 Nov 2010 11:10:26 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29108.aspx</link><description>&lt;span id="ctl00_ctlContentPlaceHolder_ctl00_ctlTopic_ctlPanelBar_ctlTopicsRepeater_ctl02_lblFullMessage"&gt;&lt;span&gt;&lt;pre style="font-family: consolas;"&gt;&amp;nbsp; &amp;gt;&amp;gt; cmd.CommandText&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;.Format(&lt;span style="color: rgb(163, 21, 21);"&gt;"SELECT&amp;nbsp;COUNT({0})&amp;nbsp;FROM&amp;nbsp;{1}&amp;nbsp;WHERE&amp;nbsp;{0}&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;{0}&amp;nbsp;HAVING&amp;nbsp;COUNT(1)&amp;nbsp;&amp;gt;&amp;nbsp;0"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.PrimaryKeyField,&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.TableNameAndSchema)&lt;br/&gt;&lt;br/&gt;I'd suggest :&lt;br/&gt;&lt;span id="ctl00_ctlContentPlaceHolder_ctl00_ctlTopic_ctlPanelBar_ctlTopicsRepeater_ctl02_lblFullMessage"&gt;&lt;span&gt;&lt;pre style="font-family: consolas;"&gt;cmd.CommandText&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;.Format(&lt;span style="color: rgb(163, 21, 21);"&gt;"SELECT COUNT({0}), {2}  FROM {1} GROUP BY {2} HAVING COUNT({0}) &amp;gt; 1"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.PrimaryKeyField,&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.TableNameAndSchema, Fieldname)&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;where fieldnames is a single field or comma separated string of fields that defines a dupe&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I was thrown by looking for dupes based on PK as the whole idea of a PK is that they be unique to begin with.  &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;</description><pubDate>Mon, 29 Nov 2010 10:52:26 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29107.aspx</link><description>Hi Charles,&lt;br/&gt;&lt;br/&gt;SET STUPID OFF (on my side &lt;span&gt;:P&lt;/span&gt;)&lt;br/&gt;&lt;br/&gt;Yes you are right, this one is looking for duplicates in the primary key field, but the function can be enhanced by passing the field name to be used in the SELECT statement, here is an &lt;span style="text-decoration: underline; font-style: italic; font-weight: bold;"&gt;untested sample code&lt;/span&gt;, please let us know if this may work for you?&lt;br/&gt;&lt;span&gt;[quote]&lt;br/&gt;&lt;/span&gt;&lt;pre style="font-family: consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;This&amp;nbsp;a&amp;nbsp;generic&amp;nbsp;function&amp;nbsp;to&amp;nbsp;find&amp;nbsp;duplicate&amp;nbsp;records&amp;nbsp;in&amp;nbsp;tables&amp;nbsp;where&amp;nbsp;the&amp;nbsp;Primary&amp;nbsp;Key&amp;nbsp;is&amp;nbsp;an&amp;nbsp;integer&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;param&amp;nbsp;name=&lt;/span&gt;&lt;span style="color: gray;"&gt;"FieldName"&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: green;"&gt;The&amp;nbsp;field&amp;nbsp;name&amp;nbsp;used&amp;nbsp;in&amp;nbsp;the&amp;nbsp;SQL&amp;nbsp;to&amp;nbsp;check&amp;nbsp;for&amp;nbsp;duplicate.&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: green;"&gt;True&amp;nbsp;if&amp;nbsp;duplicate&amp;nbsp;records&amp;nbsp;are&amp;nbsp;found.&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="color: green;"&gt;This&amp;nbsp;code&amp;nbsp;should&amp;nbsp;only&amp;nbsp;work&amp;nbsp;any&amp;nbsp;field&amp;nbsp;type.&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Function&lt;/span&gt;&amp;nbsp;DuplicateRecordFound(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;FieldName&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;)&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Boolean&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Not&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.CheckColumnExists(&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.CurrentDataTable,&amp;nbsp;FieldName,&amp;nbsp;&lt;span style="color: blue;"&gt;GetType&lt;/span&gt;(&lt;span style="color: blue;"&gt;String&lt;/span&gt;))&amp;nbsp;&lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Exit&amp;nbsp;Function&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Create&amp;nbsp;the&amp;nbsp;SqlCommand&amp;nbsp;with&amp;nbsp;an&amp;nbsp;Using&amp;nbsp;to&amp;nbsp;automatically&amp;nbsp;dispose&amp;nbsp;it.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Using&lt;/span&gt;&amp;nbsp;cmd&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;SqlCommand&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandType&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;CommandType&lt;/span&gt;.Text&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandText&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;.Format(&lt;span style="color: rgb(163, 21, 21);"&gt;"SELECT&amp;nbsp;COUNT({0})&amp;nbsp;FROM&amp;nbsp;{1}&amp;nbsp;WHERE&amp;nbsp;{0}&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;{0}&amp;nbsp;HAVING&amp;nbsp;COUNT(1)&amp;nbsp;&amp;gt;&amp;nbsp;0"&lt;/span&gt;, FieldName,&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.TableNameAndSchema)&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Execute&amp;nbsp;the&amp;nbsp;query&amp;nbsp;and&amp;nbsp;return&amp;nbsp;the&amp;nbsp;value&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Return&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;CType&lt;/span&gt;(&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.ExecuteScalar(cmd),&amp;nbsp;&lt;span style="color: blue;"&gt;Integer&lt;/span&gt;)&amp;nbsp;&amp;gt;&amp;nbsp;0&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Using&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Function&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;Ensures&amp;nbsp;that&amp;nbsp;the&amp;nbsp;column&amp;nbsp;specified&amp;nbsp;exists&amp;nbsp;within&amp;nbsp;the&amp;nbsp;table.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;param&amp;nbsp;name=&lt;/span&gt;&lt;span style="color: gray;"&gt;"table"&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;param&amp;nbsp;name=&lt;/span&gt;&lt;span style="color: gray;"&gt;"columnName"&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;param&amp;nbsp;name=&lt;/span&gt;&lt;span style="color: gray;"&gt;"columnType"&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Function&lt;/span&gt;&amp;nbsp;CheckColumnExists(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;table&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;DataTable&lt;/span&gt;,&amp;nbsp;&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;columnName&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;,&amp;nbsp;&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;columnType&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;System.&lt;span style="color: rgb(43, 145, 175);"&gt;Type&lt;/span&gt;)&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Boolean&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Establish&amp;nbsp;Locals&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;col&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;DataColumn&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;columnFound&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Boolean&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;False&lt;/span&gt;&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Cycle&amp;nbsp;through&amp;nbsp;all&amp;nbsp;of&amp;nbsp;the&amp;nbsp;columns&amp;nbsp;so&amp;nbsp;we&amp;nbsp;can&amp;nbsp;test&amp;nbsp;on&amp;nbsp;a&amp;nbsp;case-insensitive&amp;nbsp;basis&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;For&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Each&lt;/span&gt;&amp;nbsp;col&amp;nbsp;&lt;span style="color: blue;"&gt;In&lt;/span&gt;&amp;nbsp;table.Columns&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Check&amp;nbsp;to&amp;nbsp;see&amp;nbsp;if&amp;nbsp;the&amp;nbsp;column&amp;nbsp;name&amp;nbsp;matches&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;columnFound&amp;nbsp;=&amp;nbsp;col.ColumnName.Equals(columnName,&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;StringComparison&lt;/span&gt;.OrdinalIgnoreCase)&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;If&amp;nbsp;the&amp;nbsp;column&amp;nbsp;was&amp;nbsp;found,&amp;nbsp;exit&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&amp;nbsp;columnFound&amp;nbsp;&lt;span style="color: blue;"&gt;Then&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Exit&amp;nbsp;For&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Next&lt;/span&gt;&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;If&amp;nbsp;the&amp;nbsp;column&amp;nbsp;is&amp;nbsp;not&amp;nbsp;found&amp;nbsp;then&amp;nbsp;throw&amp;nbsp;and&amp;nbsp;error&amp;nbsp;letting&amp;nbsp;the&amp;nbsp;developer&amp;nbsp;knows&amp;nbsp;that&amp;nbsp;the&amp;nbsp;field&amp;nbsp;name&amp;nbsp;passed&amp;nbsp;is&amp;nbsp;wrong.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CheckColumnExists&amp;nbsp;=&amp;nbsp;columnFound&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Not&lt;/span&gt;&amp;nbsp;columnFound&amp;nbsp;&lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;errMsg&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;.Format(&lt;span style="color: rgb(163, 21, 21);"&gt;"Make&amp;nbsp;sure&amp;nbsp;the&amp;nbsp;field&amp;nbsp;name&amp;nbsp;[{0}]&amp;nbsp;exist&amp;nbsp;in&amp;nbsp;this&amp;nbsp;table&amp;nbsp;{1}."&lt;/span&gt;,&amp;nbsp;columnName,&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.TableNameAndSchema)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Throw&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;Exception&lt;/span&gt;(errMsg)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Function&lt;/span&gt;&lt;br/&gt;&lt;/pre&gt;&lt;span&gt;[/quote]&lt;/span&gt;</description><pubDate>Mon, 29 Nov 2010 10:26:38 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29106.aspx</link><description>Hey Edhy -&lt;br/&gt;&lt;br/&gt;It's Monday and I have SET STUPID ON but could you clarify the select statement?&amp;nbsp; It looks like you are looking for records with duplicate primary keys?&lt;br/&gt;&lt;br/&gt;I have a function like this checking dupes but I pass in the where that determines what a "match" is.&lt;br/&gt;&lt;br/&gt;This looks like you are checking for duplicate primary keys?&amp;nbsp; Isn't that prevented on the backend to start with ?&lt;br/&gt;&lt;br/&gt;(or do I completely misunderstand what is going on ?)&lt;br/&gt;&lt;br/&gt;Could you show an example of what the string.format would resolve to?</description><pubDate>Mon, 29 Nov 2010 09:55:58 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29105.aspx</link><description>Thank you so much. That makes sense.&amp;nbsp;&lt;div&gt;Zowie this stuff is cool.</description><pubDate>Mon, 29 Nov 2010 06:26:53 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29103.aspx</link><description>Hi Terry,&lt;br/&gt;&lt;br/&gt;Sorry for the confusion, bizTransationItems is one of my BO.&amp;nbsp; I simply paste one of my code as a sample.&amp;nbsp;&amp;nbsp; &lt;span&gt;:w00t:&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;You must use your own BO class.&lt;br/&gt;&lt;br/&gt;We are in a constant learning and since my switch from VFP a couple of years ago to StrataFrame and VB.NET you will not believe how many times I have refactored by code based on posting in these forums.&amp;nbsp; &lt;span&gt;:)&lt;/span&gt;</description><pubDate>Sun, 28 Nov 2010 21:07:30 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29102.aspx</link><description>&lt;font class="Apple-style-span" color="#1F5080"&gt;Oh if my learning curve was not straight up enough. Now it has a curve backwards. Wow Thanks&amp;gt;&lt;/font&gt;&lt;div style="color: rgb(31, 80, 128); "&gt;&lt;br/&gt;&lt;div style="color: rgb(31, 80, 128); "&gt;But on the statement:&amp;nbsp;&lt;span class="Apple-style-span" style="color: rgb(95, 119, 156); font-family: consolas; font-size: 11px; line-height: 21px; white-space: pre; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "&gt;&lt;span style="color: blue; "&gt;Using&lt;/span&gt;&amp;nbsp;bo&amp;nbsp;&lt;span style="color: blue; "&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue; "&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175); "&gt;bizTransactionItems&lt;/span&gt;&lt;/span&gt;&lt;div style="color: rgb(31, 80, 128); "&gt;&lt;br/&gt;&lt;div style="color: rgb(31, 80, 128); "&gt;I get the following error:&lt;div style="color: rgb(31, 80, 128); "&gt;Type bizTransactionItems is not defined.&lt;div style="color: rgb(31, 80, 128); "&gt;&lt;br/&gt;&lt;div style="color: rgb(31, 80, 128); "&gt;I did replace bo with my BO name?&lt;div style="color: rgb(31, 80, 128); "&gt;&lt;br/&gt;&lt;div style="color: rgb(31, 80, 128); "&gt;I can not seem to find bizTransactionsItems in the Strataframe Help.&lt;div style="color: rgb(31, 80, 128); "&gt;TIA.&lt;div style="color: rgb(31, 80, 128); "&gt;&lt;br/&gt;&lt;div style="color: rgb(31, 80, 128); "&gt;</description><pubDate>Sun, 28 Nov 2010 20:56:44 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29101.aspx</link><description>Terry, I agree with Edhy.&amp;nbsp; It is never good Mojo to put your query logic in a button.&amp;nbsp; You are better of encapsulating your query logic in the BO or a Singleton class you use to execute queries in this manner.&amp;nbsp; By embedding your code in the button click and the logic of your application, you break encapsulation which is far more prone to downstream bugs.</description><pubDate>Sun, 28 Nov 2010 10:00:22 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29100.aspx</link><description>Hi Terry,&lt;br/&gt;&lt;br/&gt;Your approach is correct but I prefer to have all data validation code at the business level so it can be use from other places if you need to.&amp;nbsp; So what I do is create a sub or function in the BO that will return the desired value, in your case you want to know if a duplicate record exist, so I would do this:&lt;br/&gt;&lt;br/&gt;&lt;span&gt;[quote]&lt;br/&gt;&lt;/span&gt;&lt;pre style="font-family: consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;This&amp;nbsp;a&amp;nbsp;generic&amp;nbsp;function&amp;nbsp;to&amp;nbsp;find&amp;nbsp;duplicate&amp;nbsp;records&amp;nbsp;in&amp;nbsp;tables&amp;nbsp;where&amp;nbsp;the&amp;nbsp;Primary&amp;nbsp;Key&amp;nbsp;is&amp;nbsp;an&amp;nbsp;integer&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: green;"&gt;True&amp;nbsp;if&amp;nbsp;duplicate&amp;nbsp;records&amp;nbsp;are&amp;nbsp;found.&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'''&amp;nbsp;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="color: green;"&gt;This&amp;nbsp;code&amp;nbsp;will&amp;nbsp;only&amp;nbsp;work&amp;nbsp;for&amp;nbsp;Integer&amp;nbsp;PK,&amp;nbsp;if&amp;nbsp;using&amp;nbsp;other&amp;nbsp;type,&amp;nbsp;simply&amp;nbsp;change&amp;nbsp;the&amp;nbsp;CType&amp;nbsp;in&amp;nbsp;the&amp;nbsp;return&amp;nbsp;statement.&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Function&lt;/span&gt;&amp;nbsp;DuplicateRecordFound()&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Boolean&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Create&amp;nbsp;the&amp;nbsp;SqlCommand&amp;nbsp;with&amp;nbsp;an&amp;nbsp;Using&amp;nbsp;to&amp;nbsp;automatically&amp;nbsp;dispose&amp;nbsp;it.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Using&lt;/span&gt;&amp;nbsp;cmd&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;SqlCommand&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandType&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;CommandType&lt;/span&gt;.Text&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandText&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;.Format(&lt;span style="color: rgb(163, 21, 21);"&gt;"SELECT&amp;nbsp;COUNT({0})&amp;nbsp;FROM&amp;nbsp;{1}&amp;nbsp;WHERE&amp;nbsp;{0}&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;{0}&amp;nbsp;HAVING&amp;nbsp;COUNT(1)&amp;nbsp;&amp;gt;&amp;nbsp;0"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.PrimaryKeyField,&amp;nbsp;&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.TableNameAndSchema)&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Execute&amp;nbsp;the&amp;nbsp;query&amp;nbsp;and&amp;nbsp;return&amp;nbsp;the&amp;nbsp;value&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Return&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;CType&lt;/span&gt;(&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.ExecuteScalar(cmd),&amp;nbsp;&lt;span style="color: blue;"&gt;Integer&lt;/span&gt;)&amp;nbsp;&amp;gt;&amp;nbsp;0&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Using&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Function&lt;/span&gt;&lt;br/&gt;&lt;/pre&gt;&lt;span&gt;[/quote]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Then if you need to use it from any code where you don't have an instance of the BO, you can do this:&lt;br/&gt;&lt;span&gt;[quote]&lt;br/&gt;&lt;/span&gt;&lt;pre style="font-family: consolas;"&gt;&lt;span style="color: blue;"&gt;        Using&lt;/span&gt;&amp;nbsp;bo&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;bizTransactionItems&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&amp;nbsp;bo.DuplicateRecordFound&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;True&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;Do&amp;nbsp;whatever&amp;nbsp;you&amp;nbsp;want&amp;nbsp;here.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Using&lt;/span&gt;&lt;/pre&gt;&lt;span&gt;[/quote]&lt;br/&gt;&lt;br/&gt;So if you are using a base BO, simply copy above function and it will work with any BO with an Integer Primary Key.&amp;nbsp; Also noticed the use of "Using bo" in the sample calling code to properly dispose the bo instance and by the way, in this case, no need to create a Stored Procedure because the code is pretty simply and would not make any difference in speed or connection, and remember the idea is to have it generic so it can be used in any BO.&lt;br/&gt;&lt;br/&gt;Have fun!!!&lt;br/&gt;&lt;/span&gt;</description><pubDate>Sun, 28 Nov 2010 09:34:21 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29098.aspx</link><description>You're welcome. :cool:</description><pubDate>Sat, 27 Nov 2010 11:20:42 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29097.aspx</link><description>I think I found it.&lt;div&gt;&lt;pre style="font-family: consolas"&gt;MicroFour.StrataFrame.Data.&lt;span style="color: #2b91af"&gt;DataBasics&lt;/span&gt;.DataSources(&lt;span style="color: #a31515"&gt;""&lt;/span&gt;).ExecuteNonQuery(cmd)&lt;br/&gt;&lt;/pre&gt;&lt;pre style="font-family: consolas"&gt;Thanks for the help.&lt;/pre&gt;</description><pubDate>Sat, 27 Nov 2010 09:57:20 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item><item><title>RE: Getting a Return Value from a Stored Procedure</title><link>http://forum.strataframe.net/FindPost29096.aspx</link><description>Actually I am running the code in the click of a button and so when I put&lt;div&gt;&lt;pre style="font-family: consolas"&gt;me.ExecuteNonQuery(cmd)&lt;br/&gt;&lt;/pre&gt;&lt;pre style="font-family: consolas"&gt;I get an error that says ExecuteNonQuery is not a member of Rodeo.CheckforDupsfrm&lt;/pre&gt;&lt;pre style="font-family: consolas"&gt;I know that it probably just in not the correct syntax because it is in the click of a button but I tried a couple of things and they did not work either.?&lt;/pre&gt;&lt;pre style="font-family: consolas"&gt;&lt;br/&gt;&lt;/pre&gt;</description><pubDate>Sat, 27 Nov 2010 09:52:14 GMT</pubDate><dc:creator>Terry Bottorff</dc:creator></item></channel></rss>