Showing posts with label string. Show all posts
Showing posts with label string. Show all posts

Monday, March 26, 2012

PDF export buggy?

Hi,
I have a LocalReport, when I'm exporting to a PDF using the following
code:
Warning[] warnings;
string mimeType;
string encoding;
string fileNameExtension;
string[] streams;
byte[] pdfContent;
string fileName;
FileStream pdfFile;
fileName = Path.GetTempPath();
fileName = Path.Combine( fileName, Report.DisplayName +
".pdf" );
pdfContent = report.Render( "PDF", null, out mimeType, out
encoding,
out fileNameExtension, out streams, out warnings );
using ( pdfFile = new FileStream( fileName,
FileMode.Create ) ) {
pdfFile.Write( pdfContent, 0, pdfContent.Length );
}
This works, except that some people that recieve the PDF cannot print
it properly. Our graphics guru was able to reproduce the problem and
said it seemed that those that didn't have postscript drivers wouldn't
be able to print the PDF. PCL drivers print the PDF fine.
Any idea what I can do to correct this? Is this a known issue?
Thanks
AndyI've been able to verify this.
Using the PCL drivers for a laser printer we have here, the PDF prints
fine. Uninstalling the print drivers and installing the PS printer
drivers, and we get one page with a few portions of text, followed by
a second page with this text:
ERROR: unmatchedmark
OFFENDING COMMAND: ]
STACK:
8
Any ideas?|||I've narrowed it down a bit more. I have an embedded PNG in the rdlc
file; if I remove the Image control which displays the png from the
report, it prints fine.|||On Aug 30, 11:51 am, Andy <an...@.med-associates.com> wrote:
> I've narrowed it down a bit more. I have an embedded PNG in the rdlc
> file; if I remove the Image control which displays the png from the
> report, it prints fine.
So I don't know if the particular PNG I was using was corrupt, or if
LocalReport.Render simply can't handle PNGs, but changing the PNG to a
JPG and using the JPG has fixed the issue, in case anyone else has
this problem.

PDF error after applying SP1

After applying SP1 i got following error during export to PDF
Export Error:
"Index and lenght must refer to a location within a string.
Parameter name: lenght"Workaround solution with following post:
"SP1 - Exception of type
Microsoft.ReportingServices.ReportRendering.ReportRenderingException was
thrown" by Rahul
U¿ytkownik "kamel" <ddd@.ddd.com> napisa³ w wiadomo¶ci
news:e9gFBIQXEHA.3016@.tk2msftngp13.phx.gbl...
> After applying SP1 i got following error during export to PDF
> Export Error:
> "Index and lenght must refer to a location within a string.
> Parameter name: lenght"
>|||I have a straight forward workaround: Always use a Lang-Country code pair.
For example, in report designer, the language options for Norwegian are
Name Lang-County Code
* Norwegian no
* Norwegian (Bokmal) nb-NO
* Norwegian (Nynorsk) nn-NO
To avoid the error when exporting to PDF always use nb-NO or nn-NO.
--
Bruce Johnson [MSFT]
Microsoft SQL Server Reporting Services
This posting is provided "AS IS" with no warranties, and confers no rights.
"kamel" <ddd@.ddd.com> wrote in message
news:e1TnW%23cXEHA.2364@.TK2MSFTNGP12.phx.gbl...
> Workaround solution with following post:
> "SP1 - Exception of type
> Microsoft.ReportingServices.ReportRendering.ReportRenderingException was
> thrown" by Rahul
> U¿ytkownik "kamel" <ddd@.ddd.com> napisa³ w wiadomo¶ci
> news:e9gFBIQXEHA.3016@.tk2msftngp13.phx.gbl...
> > After applying SP1 i got following error during export to PDF
> >
> > Export Error:
> > "Index and lenght must refer to a location within a string.
> > Parameter name: lenght"
> >
> >
>

Friday, March 23, 2012

pckg config.

Hi,

I have configure our ssis project that will take the connection string from the database

but when i change the connection string so the pckg will take the data from another server with exact tables name it fails.

what do you think the problem is ?

I think the problem is a mistake in the changed connection string or the preparation of the additional server. Perhaps if you gave us the full error message you get, we can make an informed guess?

Can you also be clear about which connection string has changed, one contained within the configuration store, or the connection that points to the SQL Server holding the configuration table?

|||

Hi,

this is the error i get

Message
Executed as user: FLYING-CARGO\dwhadmin. ...0.3042.00 for 32-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 12:48:14 Error: 2007-07-10 12:48:16.00 Code: 0xC0202009 Source: Load AirPort_City_Codes airport_city_codes [31] Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E14. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Statement(s) could not be prepared.". An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80040E14 Description: "Invalid object name 'export_db_drp.dbo.airport_city_codes'.". End Error Error: 2007-07-10 12:48:16.02 Code: 0xC004706B Source: Load AirPort_City_Codes DTS.Pipeline Description: "component "airport_city_codes" (31)" failed validation and returned validation status "VS_ISBROKEN". End Error Error: 2007-07-10 12:48:16.02 Code: 0xC00470... The package execution fa... The step failed.

what i've changed is the connection string of my erp db.

|||

what i've changed is the connection string of my erp db which store in my configuration table.

10x.

|||10x i've fix it.|||Could you post the resolution?|||

Hi steam5,

Description: "Invalid object name 'export_db_drp.dbo.airport_city_codes'." draws my attention. If you are executing a query, check if that runs successfully on the SSMS Query Editor after connecting to the ServerName you have changed. If succeeded, use the OLEDB source preview to look for top few rows.

Thanks

Subhash Subramanyam

sql

Wednesday, March 21, 2012

Pattern Matching - Searching for Numeric or Alpha or Alpha-Numeric characters in a string

Hi,

I was trying to find numeric characters in a field of nvarchar. I looked this up in HELP.

Wildcard

Meaning

%

Any string of zero or more characters.

_

Any single character.

[ ]

Any single character within the specified range (for example, [a-f]) or set (for example, [abcdef]).

Cake

Any single character not within the specified range (for example, [^a - f]) or set (for example, [^abcdef]).

Nowhere in the examples below it in Help was it explicitly detailed that a user could do this.

In MS Access the # can be substituted for any numeric character such that I could do a WHERE clause:

WHERE
Gift_Date NOT LIKE "####*"

After looking at the above for the [ ] wildcard, it became clear that I could subsitute [0-9] for #:

WHERE
Gift_Date NOT LIKE '[0-9][0-9][0-9][0-9]%'

using single quotes and the % wildcard instead of Access' double quotes and * wildcard.

Just putting this out there for anybody else that is new to SQL, like me.

Regards,

Patrick Briggs,
Pasadena, CA

Patrick Briggs wrote:

In MS Access the # can be substituted for any numeric character such that I could do a WHERE clause:

WHERE
Gift_Date NOT LIKE "####*"

After looking at the above for the [ ] wildcard, it became clear that I could subsitute [0-9] for #:

WHERE
Gift_Date NOT LIKE '[0-9][0-9][0-9][0-9]%'

It is not quite the same. The LIKE pattern in TSQL will also match values like '0123A' and '1248mkfaliw' whereas the one in Access doesn't. The correct way to specify it is to do below:

WHERE Gift_Date NOT LIKE replicate('[0-9]', 4)

The replicate function just simplifies the repetition of the same pattern multiple times.

sql

pattern matching

hullo all,

well i need to read pages online using webclient or httmpweb classes
and store them in string builder to perform further string operations.

any idea regarding its code

This seems more like an application issue. You might try posting on one of the pertinent .NET forums.|||

ummm well ur qoute proves true..

thanks

Pattern extraction table value function

I need a table value function for extracting strings matching a particular pattern from a long string.

e.g. I have a table called cs_Posts, it has a column called FormattedBody, this value can be something like:

Code Snippet

this is the 1st photo <a href="http://jvcwebdev:81/cs/blogs/hllee/DSC00884.JPGhttp://jvcwebdev:81/cs/blogs/hllee/DSC00884.JPG">http://jvcwebdev:81/cs/blogs/hllee/DSC00884.JPG</A< A>>" border="0" alt="" /></a>


this is the 2nd photo<a href="http://jvcwebdev:81/cs/blogs/hllee/scene%20photos/DSC00859.JPGhttp://jvcwebdev:81/cs/blogs/hllee/scene%20photos/DSC00859.JPG">http://jvcwebdev:81/cs/blogs/hllee/scene%20photos/DSC00859.JPG</A< A>>" border="0" alt="" /></a>

When this long string is input, the table value function should 2 rows:
http://jvcwebdev:81/cs/blogs/hllee/DSC00884.JPG
http://jvcwebdev:81/cs/blogs/hllee/scene%20photos/DSC00859.JPG

Any idea?

This is just a sample,

Code Snippet

Create table Utility_Numbers (Number int);

Declare @.I as Int;

Set @.I = 1

While @.I<=8000

Begin

Insert Into Utility_Numbers Values(@.I);

Set @.I = @.I + 1;

End

Go

Code Snippet

Create Function GetUrls

(

@.html as varchar(8000)

) returns @.result Table(URL varchar(1000))

as

Begin

Set @.html = char(10) + @.html + char(10)

Declare @.Table Table (data varchar(1000))

Insert Into @.Table

Select Substring(@.html,number,charindex(char(10),@.html,number+1) - number) from Utility_Numbers where number<len(@.html)

and substring(@.html,number,1)=char(10)

Insert Into @.result

Select Substring(data,charindex('>http://',data)+1,charindex('</'< SPAN>,data,charindex('>http://',data)+1)-charindex('>http://',data)-1) from @.Table

return;

End

Go

Code Snippet

Select * from GetUrls('

this is the 1st photo http://jvcwebdev:81/cs/blogs/hllee/DSC00884.JPG</A< A>>" border="0" alt="" />

this is the 2nd photohttp://jvcwebdev:81/cs/blogs/hllee/scene%20photos/DSC00859.JPG</A< A>>" border="0" alt="" />

')

|||

Thanks Manivannan. But I got my answer now

Code Snippet

CREATE FUNCTION ExtractHTMLImgs
(
@.html nvarchar(max)
)
RETURNS
@.result TABLE
(
imgLink nvarchar(4000),
ordinal int
)
WITH SCHEMABINDING
AS
BEGIN
-- image link prefix & suffix
DECLARE @.imgPrefix char(10)
SET @.imgPrefix = '<img src="'
DECLARE @.imgSuffix char(2)
SET @.imgSuffix = '" '

-- image link ordinal
DECLARE @.ordinal int
SET @.ordinal = 1

-- searching positions
DECLARE @.imgStartPos int
SET @.imgStartPos = 1
DECLARE @.imgEndPos int
SET @.imgEndPos = 1

-- extract image links
WHILE @.imgEndPos < LEN(@.html)
BEGIN
-- search the image-link-prefix, starting from the last found image-end
SET @.imgStartPos = CHARINDEX(@.imgPrefix, @.html, @.imgEndPos)

IF @.imgStartPos = 0
BEGIN
-- NO more image link => STOP
BREAK
END
ELSE
BEGIN
-- image found => get the image-link-start-position
SET @.imgStartPos = @.imgStartPos + LEN(@.imgPrefix)

-- search the image-link-suffix, starting from the current image-start
SET @.imgEndPos = CHARINDEX(@.imgSuffix, @.html, @.imgStartPos)

-- populate results
INSERT @.result VALUES (
SUBSTRING(@.html, @.imgStartPos, (@.imgEndPos - @.imgStartPos)),
@.ordinal
)

-- next
SET @.ordinal = @.ordinal + 1
END
END

RETURN
END

Friday, March 9, 2012

Password Property in ConnectionManager

I'm developing a custom manager in SSIS that has several properties defined. One property is a password string that is visible in clear text in the properties pane. I'm trying to figure out how to create a masked field in the properties pane that will mask the text and not present this in clear text. Can someone send me instructions or code samples in C# for doing this? BOL doesn't provide any information on doing this.Hi,

we're facing the same problem, but haven't found any helpful information about it.

This post doesn't really help with the issue not displaying pwds as plain text.
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=887558&SiteID=1

Hope you guys can help.
F.|||I believe you need to implement a UITypeEditor (http://msdn2.microsoft.com/en-us/library/system.drawing.design.uitypeeditor(VS.71).aspx) to handle this type of functionality.

Password Property in ConnectionManager

I'm developing a custom manager in SSIS that has several properties defined. One property is a password string that is visible in clear text in the properties pane. I'm trying to figure out how to create a masked field in the properties pane that will mask the text and not present this in clear text. Can someone send me instructions or code samples in C# for doing this? BOL doesn't provide any information on doing this.Hi,

we're facing the same problem, but haven't found any helpful information about it.

This post doesn't really help with the issue not displaying pwds as plain text.
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=887558&SiteID=1

Hope you guys can help.
F.

|||I believe you need to implement a UITypeEditor (http://msdn2.microsoft.com/en-us/library/system.drawing.design.uitypeeditor(VS.71).aspx) to handle this type of functionality.

Monday, February 20, 2012

Passing string with quotes " 'VALUE1', 'VALUE2', 'VALUE3' " to a table-valued fu

I have a problem passing a string containing single quotes to a table-valued-function

ex:

SET QUOTED_IDENTIFIER OFF

SELECT * FROM myFunc(" 'VALUE1', 'VALUE2', 'VALUE3' ")

GO

--

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

G

ALTER FUNCTION dbo.myFunc(@.VendorID CHAR(100) )

)RETURNS TABLE AS

RETURN (

SELECT * FROM myTable WHER Vendor IN (@.VendorID))

)

It works if I pass only 'VALUE1'

but not if I pass " 'VALUE1', 'VALUE2', 'VALUE3' "

nor if I use 2 single quotes to delimit each string.

The same code will work if MyFunc is a STORE PROC instead of a function

EXEC myProc '''990001'',''990002''' will work (notice 3 quotes at the begining, then 2, then 2 then 3)

... but I need it to be a function !!!

Help please

You can't do what you want I am afraid.

Have a look at this article on what you want to do

http://www.sommarskog.se/arrays-in-sql.html

Passing string with quotes " 'VALUE1', 'VALUE2', 'VALUE3' " to a table-value

I have a problem passing a string containing single quotes to a table-valued-function

ex:

SET QUOTED_IDENTIFIER OFF

SELECT * FROM myFunc(" 'VALUE1', 'VALUE2', 'VALUE3' ")

GO

--

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

G

ALTER FUNCTION dbo.myFunc(@.VendorID CHAR(100) )

)RETURNS TABLE AS

RETURN (

SELECT * FROM myTable WHER Vendor IN (@.VendorID))

)

It works if I pass only 'VALUE1'

but not if I pass " 'VALUE1', 'VALUE2', 'VALUE3' "

nor if I use 2 single quotes to delimit each string.

The same code will work if MyFunc is a STORE PROC instead of a function

EXEC myProc '''990001'',''990002''' will work (notice 3 quotes at the begining, then 2, then 2 then 3)

... but I need it to be a function !!!

Help please

You can't do what you want I am afraid.

Have a look at this article on what you want to do

http://www.sommarskog.se/arrays-in-sql.html

Passing SELECT ALL from URL

Is there a way to pass the "select all" option to a multi-select parameter from a URL string?

Thanks, Eva

Hi,

In the case of multi-select with Select All let's assume 2 cases, a text param and an INT param.

Assuming no default values are set

INT param.

Set the report parameter like that

Param Value, Label = Select All, Value = 2147483647

Set the procedure like that, parameter declaration

@.Value as int = 2147483647

Set the procedure Limit like that

AND ( @.Value = 2147483647 or i.Value <= @.Value)

Then call the URL Like that

http://myname.mydomain.com/ReportServer/Pages/ReportViewer.aspx?%2fNew+Product+Market+Synergy+Reports%2fNP+Market+Synergy&rs%3aCommand=Render&Division=%23%23&project=1763570219&Value=2147483647&OptyDetailsTop=10&rs:format=EXCEL

For Strings use something like

Param Division, Label = All, Value = '##'

or use a dataset for your param like that

Select '##' as Value, '*All' As label
union all
Select distinct
Division as Value, Division_Description as Label from tb_Division
order by Label

in the proc use this param declaration

@.Division as Varchar(85) = '##'

And the limit like that

where ( @.Division = '##' or i2.Division = @.Division)

Then call it like that from the URL

http://myname.mydomain.com/ReportServer/Pages/ReportViewer.aspx?%2fNew+Product+Market+Synergy+Reports%2fNP+Market+Synergy&rs%3aCommand=Render&Division=%23%23&project=1763570219&Value=2147483647&OptyDetailsTop=10&rs:format=PDF

Where %23%23 will pass the ## to the procedure parameter.

Note that if you simply want to display the report, remove the &rs:format tag from the URL.

Since the procedure limit start with @.Division = '##' the i2.Division = @.Division will not even be part of the query sent to the server.

Regards,

Philippe

|||If I do something like you suggest RS puts the Select ALL option at the top of the multi-select parameter. Selecting both the RS select all option and the one I built in makes the queries not work. Therefore, I really just want to leave the datasets clean and the parameters in my main query TableField in (@.param) and just be able to send the URL something that tells it I want that default RS Select ALL option as if I had set that thing as the default value of the parameter.|||

Oops sorry, the example where I craft the select all was for a single select or a pre-SP2 install.

For a multi-select with built-in Select all you would actually just use the standard list of values. here the trick to avoid a huge Where Item is IN ('a', 'b', 'c',......) would be to do it like this

Procedure parameter

, @.Item varchar(Max) = '##'

Procedure handling of ALL option.

declare @.NKeyCount as int

declare @.NKeyMax as int

set @.NKeyCount = onglobals.dbo.fn_CountChar(@.Item, ',')

set @.NKeyMax = (

Select Count(Distinct b.Item_Cd) as Value

from meta_NewProductBaseline b

)

if @.NKeyCount + 1 = @.NKeyMax begin set @.Item = '##' end

If @.Item is null begin set @.Item = '##' end

Procedure limit

And (@.Item = '##' or b.Item_Cd in (select ltrim(SQLstr) from ONGlobals.dbo.clrfn_SplitCommaDelimitedString(@.Item) ) )

Unfortunately, you need a bunch of functions to get it to work. I hope you already have those functions. If not, you can try to find it from this forum or I can give you the code.

Philippe

|||

OK, Here is the code for the 2 functions. one is SQL the other is CLR.

You do not have to use CLR, there are multiple other ways to do this.

See

http://www.sqlservercentral.com/forums/shwmessage.aspx?forumid=399&messageid=386759

Also, note that the CLR I show here is limited to 4000 chars and miss a build-in LTRIM...

Count chars

Code Snippet

CREATE FUNCTION dbo.fn_countchar (@.source varchar(max), @.charval varchar(255))

returns int

as

BEGIN

DECLARE @.len int, @.icount int, @.count int

SET @.len = len(@.source)

SET @.icount = 1

SET @.count = 0

WHILE @.icount<= @.len

BEGIN

IF substring(@.source, @.icount, 1) = @.charval

SET @.count = @.count + 1

SET @.icount = @.icount +1

END

RETURN @.count

end

Split multi-param

Code Snippet

using System;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

using Microsoft.SqlServer.Server;

public partial class UserDefinedFunctions

{

[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true, IsPrecise = true, TableDefinition = "SQLStr nvarchar(4000)", FillRowMethodName = "FillSplitCommaDelimitedStringToStr")]

public static System.Collections.IEnumerable clrfn_SplitCommaDelimitedString(SqlString str)

{

string x = str.Value;

if (!string.IsNullOrEmpty(x))

{

return x.Split(',');

}

else

{

return null;

}

}

private static void FillSplitCommaDelimitedStringToStr(object obj, out SqlString str)

{

if (obj != null)

str = (String)(obj);

else

str = String.Empty;

}

};

|||

How do I pass this any values from a URL string?

|||

SAme as previously posted. You call the report via URL and the report will call the procedure.

http://myname.mydomain.com/ReportServer/Pages/ReportViewer.aspx?%2fNew+Product+Market+Synergy+Reports%2fNP+Market+Synergy&rs%3aCommand=Render&Division=%23%23&project=1763570219&Value=2147483647&OptyDetailsTop=10&rs:format=EXCEL

Use %23%23 to pass ## meaning ALL otherwhise pass the standard list of values for a multiselect or just select all in the multiselect.

Philippe

Passing SELECT ALL from URL

Is there a way to pass the "select all" option to a multi-select parameter from a URL string?

Thanks, Eva

Hi,

In the case of multi-select with Select All let's assume 2 cases, a text param and an INT param.

Assuming no default values are set

INT param.

Set the report parameter like that

Param Value, Label = Select All, Value = 2147483647

Set the procedure like that, parameter declaration

@.Value as int = 2147483647

Set the procedure Limit like that

AND ( @.Value = 2147483647 or i.Value <= @.Value)

Then call the URL Like that

http://myname.mydomain.com/ReportServer/Pages/ReportViewer.aspx?%2fNew+Product+Market+Synergy+Reports%2fNP+Market+Synergy&rs%3aCommand=Render&Division=%23%23&project=1763570219&Value=2147483647&OptyDetailsTop=10&rs:format=EXCEL

For Strings use something like

Param Division, Label = All, Value = '##'

or use a dataset for your param like that

Select '##' as Value, '*All' As label
union all
Select distinct
Division as Value, Division_Description as Label from tb_Division
order by Label

in the proc use this param declaration

@.Division as Varchar(85) = '##'

And the limit like that

where ( @.Division = '##' or i2.Division = @.Division)

Then call it like that from the URL

http://myname.mydomain.com/ReportServer/Pages/ReportViewer.aspx?%2fNew+Product+Market+Synergy+Reports%2fNP+Market+Synergy&rs%3aCommand=Render&Division=%23%23&project=1763570219&Value=2147483647&OptyDetailsTop=10&rs:format=PDF

Where %23%23 will pass the ## to the procedure parameter.

Note that if you simply want to display the report, remove the &rs:format tag from the URL.

Since the procedure limit start with @.Division = '##' the i2.Division = @.Division will not even be part of the query sent to the server.

Regards,

Philippe

|||If I do something like you suggest RS puts the Select ALL option at the top of the multi-select parameter. Selecting both the RS select all option and the one I built in makes the queries not work. Therefore, I really just want to leave the datasets clean and the parameters in my main query TableField in (@.param) and just be able to send the URL something that tells it I want that default RS Select ALL option as if I had set that thing as the default value of the parameter.|||

Oops sorry, the example where I craft the select all was for a single select or a pre-SP2 install.

For a multi-select with built-in Select all you would actually just use the standard list of values. here the trick to avoid a huge Where Item is IN ('a', 'b', 'c',......) would be to do it like this

Procedure parameter

, @.Item varchar(Max) = '##'

Procedure handling of ALL option.

declare @.NKeyCount as int

declare @.NKeyMax as int

set @.NKeyCount = onglobals.dbo.fn_CountChar(@.Item, ',')

set @.NKeyMax = (

Select Count(Distinct b.Item_Cd) as Value

from meta_NewProductBaseline b

)

if @.NKeyCount + 1 = @.NKeyMax begin set @.Item = '##' end

If @.Item is null begin set @.Item = '##' end

Procedure limit

And (@.Item = '##' or b.Item_Cd in (select ltrim(SQLstr) from ONGlobals.dbo.clrfn_SplitCommaDelimitedString(@.Item) ) )

Unfortunately, you need a bunch of functions to get it to work. I hope you already have those functions. If not, you can try to find it from this forum or I can give you the code.

Philippe

|||

OK, Here is the code for the 2 functions. one is SQL the other is CLR.

You do not have to use CLR, there are multiple other ways to do this.

See

http://www.sqlservercentral.com/forums/shwmessage.aspx?forumid=399&messageid=386759

Also, note that the CLR I show here is limited to 4000 chars and miss a build-in LTRIM...

Count chars

Code Snippet

CREATE FUNCTION dbo.fn_countchar (@.source varchar(max), @.charval varchar(255))

returns int

as

BEGIN

DECLARE @.len int, @.icount int, @.count int

SET @.len = len(@.source)

SET @.icount = 1

SET @.count = 0

WHILE @.icount<= @.len

BEGIN

IF substring(@.source, @.icount, 1) = @.charval

SET @.count = @.count + 1

SET @.icount = @.icount +1

END

RETURN @.count

end

Split multi-param

Code Snippet

using System;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

using Microsoft.SqlServer.Server;

public partial class UserDefinedFunctions

{

[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true, IsPrecise = true, TableDefinition = "SQLStr nvarchar(4000)", FillRowMethodName = "FillSplitCommaDelimitedStringToStr")]

public static System.Collections.IEnumerable clrfn_SplitCommaDelimitedString(SqlString str)

{

string x = str.Value;

if (!string.IsNullOrEmpty(x))

{

return x.Split(',');

}

else

{

return null;

}

}

private static void FillSplitCommaDelimitedStringToStr(object obj, out SqlString str)

{

if (obj != null)

str = (String)(obj);

else

str = String.Empty;

}

};

|||

How do I pass this any values from a URL string?

|||

SAme as previously posted. You call the report via URL and the report will call the procedure.

http://myname.mydomain.com/ReportServer/Pages/ReportViewer.aspx?%2fNew+Product+Market+Synergy+Reports%2fNP+Market+Synergy&rs%3aCommand=Render&Division=%23%23&project=1763570219&Value=2147483647&OptyDetailsTop=10&rs:format=EXCEL

Use %23%23 to pass ## meaning ALL otherwhise pass the standard list of values for a multiselect or just select all in the multiselect.

Philippe