MessageI am a fn of abstracting my persistence layer through an ORM, which does 
use cfqueries or through stored procs when an ORM is not available.  =)

Teddy
  ----- Original Message ----- 
  From: shawn gorrell 
  To: [email protected] 
  Sent: Tuesday, June 05, 2007 2:54 PM
  Subject: Re: [ACFUG Discuss] OT: SQL help


  Why is that? You don't still believe that stored procedures always perform 
better do ya? ;)


  ----- Original Message ----
  From: Teddy R Payne <[EMAIL PROTECTED]>
  To: [email protected]
  Sent: Tuesday, June 5, 2007 2:09:40 PM
  Subject: Re: [ACFUG Discuss] OT: SQL help


  You use it in an adhoc query in query analyzer or SSMA.  I have not tried it 
as an ad hoc query in CF as I myself tend not to use cfquery wherever I can.

  Teddy
    ----- Original Message ----- 
    From: Paul Morton 
    To: [email protected] 
    Sent: Tuesday, June 05, 2007 1:58 PM
    Subject: RE: [ACFUG Discuss] OT: SQL help


    Without creating a SP, can I use this in a select statement?
      -----Original Message-----
      From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Teddy R 
Payne
      Sent: Tuesday, June 05, 2007 11:45 AM
      To: [email protected]
      Subject: Re: [ACFUG Discuss] OT: SQL help


      Paul,
      There is already an open source function in SQL Server to do this for you:

      http://www.4guysfromrolla.com/webtech/031004-1.shtml

      They explain how to put it together.  

      Here is the function creation for how I put it together from their 
explanation:

      if exists (select * from dbo.sysobjects where id = 
object_id(N'[dbo].[Split]') and xtype in (N'FN', N'IF', N'TF'))
      drop function [dbo].[Split]
      GO

      SET QUOTED_IDENTIFIER OFF 
      GO
      SET ANSI_NULLS OFF 
      GO


      CREATE  FUNCTION dbo.Split
      (
       @List nvarchar(4000),
       @SplitOn nvarchar(5)
      )  

      RETURNS @RtnValue table 
      (
        
       Id int identity(1,1),
       Value nvarchar(250)
      ) 

      AS  

      BEGIN

       While (Charindex(@SplitOn,@List)>0)
       Begin
       
        Insert Into 
         @RtnValue
          (
          value
         )
        Select
             Value = 
ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))
       
            Set @List = 
Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
       End
       
       Insert Into 
        @RtnValue 
        (
         Value
        )
       Select 
        Value = ltrim(rtrim(@List))
       
       Return

      END

      GO
      SET QUOTED_IDENTIFIER OFF 
      GO
      SET ANSI_NULLS ON 
      GO

      It is implemented as such:

      CREATE PROCEDURE getEmployeesByID(@employeeList nvarchar(1000))
      AS

      Select 
         employeeId, -- integer (int)
         FirstName, 
         LastName 
      from #myTable
      Where 
         employeeId IN (Select convert(int,Value) from 
dbo.Split(@employeeList,','))


      Cheers,
      Teddy


        ----- Original Message ----- 
        From: Paul Morton 
        To: [email protected] 
        Sent: Tuesday, June 05, 2007 1:36 PM
        Subject: [ACFUG Discuss] OT: SQL help


        I apologize for the OT post, but I'm getting frustrated.

        I am attempting to use a UDF to split a varchar (comma delimited list 
of ints) in an IN clause in a SQL statement, and I'm not able to get the SQL 
statement to pass a Table field to the UDF.

        I'm hoping someone sees a glaring error, or can tell me I can't do this.
        MS SQL 2000
        ________________________________________________________________
        CREATE FUNCTION dbo.Split
         (
          @List nvarchar(2000),
          @SplitOn nvarchar(5)
         )  
         RETURNS @RtnValue table 
         (
          
          Id int identity(1,1),
          Value nvarchar(100)
         ) 
         AS  
         BEGIN 
          While (Charindex(@SplitOn,@List)>0)
          Begin

           Insert Into @RtnValue (value)
           Select 
            Value = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))

           Set @List = 
Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
          End

          Insert Into @RtnValue (Value)
          Select Value = ltrim(rtrim(@List))
         
          Return
         END
        
________________________________________________________________________________

        SQL Statement
        SELECT     *
        FROM         dbo.ORDER_ITEMS oi LEFT OUTER JOIN
                              dbo.AP_translation tr ON tr.option_id IN
        (select convert(int,Value) from dbo.Split(oi.OptionIDs, ','))
        WHERE     (oi.Order_ID = 12387)
        
_____________________________________________________________________________
        Error received:
        Server: Msg 170, Level 15, State 1, Line 4
        Line 4: Incorrect syntax near '.'.


        OptionIDs is a varchar(255) field with a comma delimited list of 
integers.
        It doesn't like the oi.OptionIDs.  If I put in a list like '0,1,2' in 
it's place, the query works.

        Can I not pass a field into a UDF?
        Is there another way to skin this cat?


        Paul

        ------------------------------------------------------------- 
        Annual Sponsor - Figleaf Software 

        To unsubscribe from this list, manage your profile @ 
        http://www.acfug.org?fa=login.edituserform 

        For more info, see http://www.acfug.org/mailinglists 
        Archive @ http://www.mail-archive.com/discussion%40acfug.org/ 
        List hosted by FusionLink 
        ------------------------------------------------------------- 

      ------------------------------------------------------------- 
      Annual Sponsor - Figleaf Software 

      To unsubscribe from this list, manage your profile @ 
      http://www.acfug.org?fa=login.edituserform 

      For more info, see http://www.acfug.org/mailinglists 
      Archive @ http://www.mail-archive.com/discussion%40acfug.org/ 
      List hosted by FusionLink 
      ------------------------------------------------------------- 

    ------------------------------------------------------------- 
    Annual Sponsor - Figleaf Software 

    To unsubscribe from this list, manage your profile @ 
    http://www.acfug.org?fa=login.edituserform 

    For more info, see http://www.acfug.org/mailinglists 
    Archive @ http://www.mail-archive.com/discussion%40acfug.org/ 
    List hosted by FusionLink 
    ------------------------------------------------------------- 

  ------------------------------------------------------------- 
  Annual Sponsor - Figleaf Software 

  To unsubscribe from this list, manage your profile @ 
  http://www.acfug.org?fa=login.edituserform 

  For more info, see http://www.acfug.org/mailinglists 
  Archive @ http://www.mail-archive.com/discussion%40acfug.org/ 
  List hosted by FusionLink 
  ------------------------------------------------------------- 



  ------------------------------------------------------------- 
  Annual Sponsor - Figleaf Software 

  To unsubscribe from this list, manage your profile @ 
  http://www.acfug.org?fa=login.edituserform 

  For more info, see http://www.acfug.org/mailinglists 
  Archive @ http://www.mail-archive.com/discussion%40acfug.org/ 
  List hosted by FusionLink 
  -------------------------------------------------------------


-------------------------------------------------------------

Annual Sponsor FigLeaf Software - http://www.figleaf.com



To unsubscribe from this list, manage your profile @ 

http://www.acfug.org?fa=login.edituserform



For more info, see http://www.acfug.org/mailinglists

Archive @ http://www.mail-archive.com/discussion%40acfug.org/

List hosted by http://www.fusionlink.com

-------------------------------------------------------------


Reply via email to