CR9 e VB6 [logon fallito]

giovedì 15 giugno 2006 - 17.49

shark986 Profilo | Junior Member

Ciao a tutti...
stò realizzando un gestionale in VB6 e devo stampare una (ormai maledetta) fattura!

Premetto che uso Crystal Report 9, che il db si trova su un sql server e che l'accesso richiede autenticazione.

Non ho problemi a ricavare il recordset che mi serve stampare nel report ma in fase di runtime durante l'esecuzione del CRViewer91.ViewReport una msgbox mi dice che l'autenticazione dell'utente è fallita:

"Logon failed.
Details: ADO Error Code: 0x80040e4d
Source: Microsoft OLE DB Provider for SQL Server
Description: Impossibile eseguire l'accesso per l'utente 'XX'.
QSL State: 42000
Native Error: 18456"

A questo punto CRViewer91 viene visualizzato... ma vuoto!!

Questo errore lo riscontro solo se la query di selezione prende dati da più tabelle, se invece uso solo una tabella il report viene creato correttamente..... Sapete darmi qualche dritta per favore?!?!?!?

Query incriminata: "SELECT descrizione, quantita, prezzo FROM articoli INNER JOIN fatture_clienti_articoli ON articoli.id_articolo=fatture_clienti_articoli.id_articolo WHERE id_fattura_cliente=" & id & ";"

Spero mi sappiate dare una mano... e soprattutto vi ringrazio in anticipo!!!!

Brainkiller Profilo | Guru

>"Logon failed.
>Details: ADO Error Code: 0x80040e4d
>Source: Microsoft OLE DB Provider for SQL Server
>Description: Impossibile eseguire l'accesso per l'utente 'XX'.
>QSL State: 42000
>Native Error: 18456"

Io diarei, prima di tutto, attiva il SQL Profiler sul Server e vedi che query passano in particolare quelle dove viene fatta l'autenticazione. Questo errore sembra abbastanza chiaro, sembra un accesso negato, quindi o l'utente non ha i diritti o la password è errata, oppure nel tuo codice si scatenano altri eventi che ignori che cercano di fare un login sul database, mi sembra strano che con una query va tutto e con un'altra query invece ti dà questo errore.
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

shark986 Profilo | Junior Member

il discorso è che la query viene eseguita correttamente, infatti ho controllato e non viene generato alcun tipo di errore durante l'esecuzione delle istruzioni (con particolare attenzione all'esecuzione della query.. ho controllato anche i risultati del recordset e sono corretti).

la query è giusta e funziona... io sono convinto che ci sia qualche problema col crystal report ma lo uso soltanto da due giorni ed il primo l'ho passato creando il layout della fattura!!!

ne sono sicuro perchè ho provato la stessa query eliminando l'inner join:
"SELECT quantita, prezzo FROM fatture_clienti_articoli WHERE id_fattura_cliente=" & id & ";"
e non ho errori!

inoltre l'errore lo ricevo quando chiamo CRViewer91.ViewReport e non quando assegno il recordset al report (Report.Database.SetDataSource m_RS)!

PERCIO' chiedo:
1. per inserire i campi "field" (quelli riempiti dalle info del recordset) non ci sono altri metodi?!?
(io ho fatto la connessione al db da "Database Fields" e dalle tabelle che ho inserito trascino i campi che mi interessano sul report....tutto ciò dalla finestra di progettazione all'interno di visual studio!)

2. visto che da programma offro la possibilità di dare le info relative al server su cui si trova il db (nome o percorso di rete, catalogo, utente, pass).... creando il report "trascinando" i campi da un database, non è che se cambio database il report non funziona cercando il database usato in fase di progettazione????????

HELP ME PLEASE!!!!!!

fasol Profilo | Junior Member

1 soluzione prova ad assegnare una tabella fissa anziche una str sql e paciocca x farlo funzionare dopo prova a passarle come data source la qrydovrebbe funzionare

2 soluzione è quella di creare dentro il tuo db una tabella fittizia cn i campi che ti servono e usarla come source del tuo report... sempre se riesci a intefacciare la tua tbl cn il rpt

nn so se ti sn stato d'aiuto saluti



shark986 Profilo | Junior Member

uhm.... non saprei.... mi sembrano soluzioni abbastanza laboriose (almeno la 2a!)....

cmq HO RISOLTOO :-P

o meglio.... ho spostato la causa del problema.... eliminando il problema!

ho creato una view sul db (eseguendo quindi l'inner join delle tabelle) con i campi che mi servono e poi ho interfacciato (per la fase di progettazione) al report non più tabelle unite, bensì la view! ora funzia... o funge (come preferite!!!)


ciaooo e grazie lo stesso!
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5