Error detected by database DLL

venerdì 12 ottobre 2007 - 09.06

Paolo72 Profilo | Newbie

Salve a tutti,
mi sono appena iscritto e spero che finalmente riesca a risolvere alcuni problemi che ho con il Crystal Report.
Vi espongo il mio problema principale.
Sto creando un applicazione in VB6 e per visalizzare in anteprima di stampa un report creato con CR 8.5 utilizzo il seguente codice:

rptFattureUscita.DataFiles(0) = App.Path & "\data\iannett.mdb"
rptFattureUscita.ReportFileName = App.Path & "\Report\PreventivoSenzaCoordinateBancarie.rpt"
rptFattureUscita.Action = 1

Dove rptFattureUscita è il controllo Crystal Report inserito nel progetto. Questo codice funziona perfettamente.
Ora io ho creato il report utilizzando il database iannett.mdb e più precisamente la tabella StampaPreventivo. Il cliente ora ha voluto una modifica sul report: vuole che venga aggiunto il campo Riferimento Bolla. Io non ho fatto altro che creare la tabella StampaRiferimentoBolla. Ho aggiunto la questa tabella al report già creato. Ho visto la visualizzazione da CR èd è tutto a posto. Quando però provo a lanciare il comando di anteprima da VB mi da il seguente errore:

Errore di run-time 20534
Error detected by database DLL.

Utilizzando lo stesso codice lanciando altri report (non modificati) non mi da nessun problema. Ho riutilizzato il report originario e va tutto bene...però se lo modifico come ho detto mi da questo errore. Ho anche provato a disinstallare e reinstallare il CR..niente da fare.

Qual'è la causa di questo errore? Come posso risolverlo?

Grazie e tutti per la risposta.

Se può servire vi dico che utilizzo VB 6 con Service Pack 5 e 6 installati, Windows XP Professional come sistema operativo, Access 2007 come database e Crystal Report 8.5

freeteo Profilo | Guru

ciao,
purtroppo sono passato definitivamente a .net e non ho possibilita' di darti aiuto su codice vb6, in particolare poi non ho mai usato quel codice per visualizzare report.
Tipicamente usavo un codice di questo tipo:


Dim crApp As New CRAXDDRT.Application Dim crRep As CRAXDDRT.Report '--- carico i dati io e glieli do al report... Dim zRsCli As New ADODB.Recordset Dim zRsInd As New ADODB.Recordset Dim zCn As New ADODB.Connection zCn.CursorLocation = adUseClient zCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db.mdb" Set zRsCli = zCn.Execute("select top 1 * from clienti") Set zRsInd = zCn.Execute("select * from indirizzi") '--- evvai con il report Set crRep = crApp.OpenReport(App.Path & "\report1.rpt") crRep.Database.SetDataSource zRsCli '--- e il sottoreport crRep.OpenSubreport("indirizzi").Database.SetDataSource zRsCli CRViewer1.ReportSource = crRep CRViewer1.ViewReport

per piu' tabelle se non ricordo male andavo via "Database.Tables(..).SetDataSource".
Vedi tu se un codice simile è possibile applicarlo alla tua applicazione...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Paolo72 Profilo | Newbie

Grazie della tua rispota freeteo, ma putroppo non posso riutilizzare il tuo codice, o meglio: posso riutilizzarlo ma devo cambiare completamente il modo di visualizzazione del report. Inoltre se non ho letto male mi sembra che tu non utilizzi il normale controllo di crystal report (in pratica quello relativo a Crystl32.OCX), ma bensì il controllo relativo a crviewer.dll. Infatti dalla casella degli strumenti io abilito la casella relativa a Crystal Report Control e non a Crystal Report Viewer Control. Con ciò non voglio assolutamente dire che la tua soluzione non sia valida, ma solo che non è quella giusta al mio problema. Inoltre il codice che tu hai allegato oltre ad essere un pò troppo arzigogolato (complesso) mi sembra che utilizza non poche risorse del sistema...sinceramente meno codice si usa per effettuare una certa operazione è meglio è. Ultima cosa: tu utilizzi anche un sottoreport cosa che io non faccio assolutamente (almeno nel caso specifico).
Di conseguenza come già detto ti ringrazio della risposta, ma la soluzione non è quella relativa al mio problema, quindi rilancio la domanda: come posso ovviare all'inconveniente citato nel post iniziale?

P.S.: ovviamente accetto anche suggerimenti del tipo "Passare ad un altro programa di creazione report". Basta che mi si spieghi dettagliatamente come fare e dove scaricarlo (preferirei che fosse un software open source oppure freeware - cosa molto difficile sotto Windows, ma comunque non impossibile)

Grazie di nuovo a tutti per le risposta
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5