views:

266

answers:

1

I have some Crystal Reports connecting to a Sql Server db that I would like to detect whether the connection is trusted or whether I need to supply the log on info (reports are not supplied by me so I can't control the connect method). If I just blindly supply login credentials, it won't connect if it is a trusted connection.

The following does not work:

oRpt = oCR.OpenReport("C:\MyReport.rpt")

if oRpt.Database.Tables(1).ConnectionProperties.Item("Integrated Security") = True then 
       'trusted connection
    else
       'supply login credentials
    end if

It gives the following error: Operator '=' is not defined for type 'IConnectionProperty' and type 'Boolean'.

I cannot find how create a construct in vb.net for IConnectionProperty. I can't find any documents from Crystal that explain it. I am using Crystal Reports XI - Developer

A: 

I think i found the answer. By using the property ConnectBufferString

Like this:

Console.WriteLine(oRpt.Database.Tables(1).ConnectBufferString.ToString)

It will give you a string like this

Provider=SQLOLEDB;;Data Source=MYPC\SQLEXPRESS;;Initial Catalog=sample_db;;User ID=;;Password=;;Integrated Security=-1;;Use DSN Default Properties=0;;Locale Identifier=1033;;Connect Timeout=15;;General Timeout=0;;OLE DB Services=-5;;Current Language=;;Initial File Name=;;Use Encryption for Data=0;;Replication server name connect option=;;Tag with column collation when possible=0

You just look for the following:

Integrated Security=-1 = Trusted Connection

Integrated Security=0 = Untrusted Connection

Hope this helps someone else since I wasted a few hours looking.

Michael