Domanda

Ho alcuni Crystal Reports connessi a un db SQL Server che vorrei rilevare se la connessione è attendibile o se devo fornire le informazioni di accesso (i report non vengono forniti da me, quindi non posso controllare il metodo di connessione).Se fornisco semplicemente le credenziali di accesso ciecamente, non si connetterà se si tratta di una connessione attendibile.

Quanto segue non funziona:

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

Dà il seguente errore:L'operatore '=' non è definito per il tipo 'IConnectionProperty' e il tipo 'Boolean'.

Non riesco a trovare come creare un costrutto in vb.net per IConnectionProperty.Non riesco a trovare alcun documento di Crystal che lo spieghi.Sto utilizzando Crystal Reports XI - Sviluppatore

È stato utile?

Soluzione

Penso di aver trovato la risposta.Utilizzando la proprietà ConnectBufferString

Come questo:

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

Ti darà una stringa come questa

Provider=SQLOLEDB;;Origine dati=MYPC\SQLEXPRESS;;Catalogo iniziale=sample_db;;ID utente=;;Password=;;Sicurezza integrata=-1;;Utilizza proprietà predefinite DSN=0;;Identificatore locale=1033;;Connetti Timeout=15;;Timeout generale=0;;Servizi OLE DB=-5;;Lingua corrente=;;Nome file iniziale=;;Utilizza crittografia per dati=0;;Opzione di connessione nome server di replica=;;Tag con regole di confronto delle colonne quando possibile=0

Cerca semplicemente quanto segue:

Sicurezza integrata=-1 = Connessione affidabile

Sicurezza integrata=0 = Connessione non attendibile

Spero che questo aiuti qualcun altro visto che ho perso qualche ora a cercare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top