Unable to connect: incorrect logon parameters... ma perchè?

giovedì 08 settembre 2011 - 15.13
Tag Elenco Tags  VB.NET  |  Windows 7  |  Visual Studio 2008  |  SQL Server 2008  |  Crystal Reports XI

qualityman Profilo | Newbie

Customizzo da anni gestionali con i diversi tools proprietari, ma solo ora, alla mia veneranda età, ho deciso di cimentarmi con la mia prima applicazione VB .Net autonoma.

L'applicazione dovrà stampare (senza anteprima) dei report già creati in precedenza con Crystal Reports XL, pescando i dati da un database SQL.

All'inizio del codice della procedura ho inserito

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Lanciando il programma nella sezione incriminata appare il messaggio in allegato, Se tolgo la sezione di test appare l'errore in oggetto. Ma tutti i valori, visualizzati con i precedenti MsgBox, sono correttissimi.

1156x251 73Kb


Dove sbaglio? Sono ormai due giorni che provo a uscirne, inutilmente...

Sperando sia utile, preciso che:
- Sto lavorando su una macchina Windows 7 Pro a 64 bit, con visual studio 2008
- Sto lavorando in un evento non generato da un bottone (arrivo di un dato dalla porta seriale)
- il report funziona perfettamente se lanciato in anteprima da Crystal Reports
- il report funziona perfettamente se utilizzo, seguendo pedissequamente la documentazione MSDN, il Crystal Report Viewer (ma io ho bisogno di non avere anteprima e di non dover confermare alcunchè)

Qualcuno può gentilmente aiutarmi?

EDIT: Dopo aver cercato un pò sul forum ho modificato la sezione come segue:

Dim pathreport As String = Application.StartupPath & "\" & Configurazione.Default.LabelReport
Dim objreport As New CrystalDecisions.CrystalReports.Engine.ReportDocument
objreport.Load(pathreport)
objreport.DataSourceConnections(0).SetConnection(Configurazione.Default.ServerName, Configurazione.Default.DBName, False)
objreport.DataSourceConnections(0).SetLogon(Configurazione.Default.UserID, Configurazione.Default.Password)

Dim tb As CrystalDecisions.CrystalReports.Engine.Table
Dim i As Integer = 0
For Each tb In objreport.Database.Tables
tb.LogOnInfo.ConnectionInfo.ServerName = Configurazione.Default.ServerName
tb.LogOnInfo.ConnectionInfo.DatabaseName = Configurazione.Default.DBName
tb.LogOnInfo.ConnectionInfo.UserID = Configurazione.Default.UserID
tb.LogOnInfo.ConnectionInfo.Password = Configurazione.Default.Password
tb.LogOnInfo.ConnectionInfo.Type = ConnectionInfoType.Query
objreport.Database.Tables(i).Location = tb.Location
i += 1
tb.ApplyLogOnInfo(tb.LogOnInfo)
Next

objreport.VerifyDatabase()
objreport.PrintToPrinter(1, False, 0, 0)

Ma alla riga
objreport.Database.Tables(i).Location = tb.Location (con i=0) ottengo già un errore analogo

- Se visualizzo la tb.Location corrisponde alla prima tabella del report
- Se commento la riga incriminata il ciclo viene svolto e l'errore riappare alla VerifyDatabase()

HELP!

EDIT 2:

RISOLTO! Porcaccia miseriaccia zozza (scusate ma quando ci vuole ci vuole...)

ServerName NON E' il nome del server SQL, ma della connessione ODBC (nel resto dell'applicativo io utilizzavo una SqlConnection)

Peraltro io avevo provato ANCHE, nel dubbio, con il nome della connessione ODBC, ma a 32 bit (C:\Windows\SysWOW64\odbcad32.exe), che era l'unica a funzionare con i diversi applicativi sulla mia macchina, Access 2007 incluso. Invece Visual Studio 2008, trovandosi su un Windows 7 64 bit, PRETENDE la connessione a 64 bit.

Diciamo che sono soddisfatto di esserci arrivato da solo, ma che fatica....
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5