<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: t-sql code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 28 Aug 2008 21:15:19 GMT</pubDate>
    <description>DZone Snippets: t-sql code</description>
    <item>
      <title>Timeslice temp table in SQL, useful for joining from and reporting counts of stuff</title>
      <link>http://snippets.dzone.com/posts/show/4396</link>
      <description>// @table full of timeslices&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;declare @TimeSlices table&lt;br /&gt;(&lt;br /&gt;	StartTime datetime,&lt;br /&gt;	EndTime datetime&lt;br /&gt;)&lt;br /&gt;declare @StartTime datetime&lt;br /&gt;declare @EndTime datetime&lt;br /&gt;declare @IncrementMinutes int&lt;br /&gt;&lt;br /&gt;set @StartTime  =	'2007-08-06 17:00:00.000'&lt;br /&gt;set @EndTime  =		'2007-08-07 08:00:00.000'&lt;br /&gt;set @Incrementminutes  = 60&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;while (1=1)&lt;br /&gt;begin&lt;br /&gt;	insert into @TimeSlices&lt;br /&gt;	select @StartTime, dateadd(mi, @IncrementMinutes, @StartTime)&lt;br /&gt;&lt;br /&gt;	set @StartTime = dateadd(mi, @IncrementMinutes, @StartTime)&lt;br /&gt;	if (@StartTime &gt; @EndTime) BREAK&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;select	count(TransmissionAttemptId) as FilesSent, &lt;br /&gt;		StartTime as StartTime, &lt;br /&gt;		dateadd(mi, @IncrementMinutes, StartTime) as EndTime&lt;br /&gt;	from @TimeSlices T&lt;br /&gt;	left join TransmissionAttempt TA&lt;br /&gt;	on	TA.SentAt &gt; T.StartTime&lt;br /&gt;		and &lt;br /&gt;		TA.SentAt &lt; T.EndTime&lt;br /&gt;	group by T.StartTime&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 07 Aug 2007 09:11:44 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4396</guid>
      <author>rizlbay (JohnC)</author>
    </item>
    <item>
      <title>C#: Execute A Query &amp; Return A Reader</title>
      <link>http://snippets.dzone.com/posts/show/4332</link>
      <description>&lt;code&gt;&lt;br /&gt;public static SqlDataReader GetReader(string Query)&lt;br /&gt;{&lt;br /&gt;	string ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["CONNECTION_STRING_NAME"].ConnectionString;&lt;br /&gt;	SqlConnection con = new SqlConnection(ConnectionString);&lt;br /&gt;	SqlCommand command = new SqlCommand();&lt;br /&gt;&lt;br /&gt;	command.Connection = con;&lt;br /&gt;	command.Connection.Open();&lt;br /&gt;	command.CommandText = Query;&lt;br /&gt;	return command.ExecuteReader();&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 19 Jul 2007 22:02:34 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4332</guid>
      <author>cornerblue (CornerBLUE, Inc.)</author>
    </item>
    <item>
      <title>PRNG In SQL Select </title>
      <link>http://snippets.dzone.com/posts/show/4033</link>
      <description>Simple example of a PRNG (pseudo-random number generator) written into a SQL statement&lt;br /&gt;&lt;br /&gt;Example is in T-SQL, but it ports well&lt;br /&gt;&lt;br /&gt;Actual application should use either a better random algorithm, or the output be used with randomized seeds. This is definitely not cryptographically secure. It's very handy if you need a simple random number with your recordset though.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;-- Setup some vars we'll need&lt;br /&gt;DECLARE @prng TABLE (seed BIGINT, rnum nchar(10))&lt;br /&gt;DECLARE @seeds TABLE (seed BIGINT)&lt;br /&gt;DECLARE @seed BIGINT&lt;br /&gt;DECLARE @C1 BIGINT, @C2 BIGINT, @C3 BIGINT&lt;br /&gt;SET @seed = 0&lt;br /&gt;SET @C1 = 1664525&lt;br /&gt;SET @C2 = 4294967296&lt;br /&gt;SET @C3 = 1013904223&lt;br /&gt;&lt;br /&gt;-- Create a seed table so we can have some data to use&lt;br /&gt;WHILE @seed &lt; 10&lt;br /&gt;BEGIN&lt;br /&gt;    INSERT INTO @seeds (seed) VALUES (@seed)&lt;br /&gt;    SET @seed = @seed + 1&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;-- Create our PRNG (inserts into table for illustrative purposes)&lt;br /&gt;-- prng(seed) ::= ((((C1 * seed) % C2) + C3) % C2) / C2&lt;br /&gt;-- Then convert prng(seed) into a string&lt;br /&gt;-- of 10 chars, 8 of which are decimal places&lt;br /&gt;INSERT INTO @prng&lt;br /&gt;SELECT&lt;br /&gt;    seed,&lt;br /&gt;    REPLACE(&lt;br /&gt;        STR(&lt;br /&gt;            ( CAST((((@C1*seed)%@C2)+@C3)%@C2 AS FLOAT) )&lt;br /&gt;            / ( CAST(@C2 AS FLOAT)),&lt;br /&gt;            10, 8&lt;br /&gt;        ),&lt;br /&gt;        ' ', '0') AS rnum&lt;br /&gt;FROM @seeds&lt;br /&gt;&lt;br /&gt;-- Let's take a look at what we created&lt;br /&gt;SELECT * FROM @prng&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 17 May 2007 00:39:32 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4033</guid>
      <author>jokeyxero (xero)</author>
    </item>
  </channel>
</rss>
