Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
Parametri Datetime con SQL nativo
lunedì 23 marzo 2009 - 23.19
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Aragorn2004
Profilo
| Newbie
39
messaggi | Data Invio:
lun 23 mar 2009 - 23:19
Ciao ho questo diavolo di problema: VB6 + CR8 + SQL2K.
Il report costruito dentro Crystal Report usa il collegamento nativo a SQL SERVER. La store procedure vuole 2 parametri di tipo datetime.
Nell'ambiente CR tutto funziona. Quando apro il report da VB6 mi esce il seguente errore:
Errore SQL generale controllore i messaggi di SQL SERVER.
Apro il file SQLSVR.ERR e dentro c'è questo messaggio
SQL Server Message
Number : 8114
State : 4
Severity: 16
Text : Si è verificato un errore durante la conversione del tipo di dati da varchar a datetime.
Server : MYSERVER
Procname: qview_ListaArticoliOrdinati
-----------------------------------
-Aggiunto dopo
-Cambiando il driver sul REPORT da SQL a ODBC e cambiando la DLL nel codice il report funziona
- Solo che sarebbe una rottura non da poco dover aggiungere l'ODBC e non sfruttare il driver nativo
-----------------
Questo è una parte di codice. Per i valori ho aggiunto un secondo alla data passata in modo tale che riesco a passare anche i secondi.
Credevo che fosse questo il problema ma invece niente.
Data1 viene valorizzato con una stringa tipo "01-01-2005" e così DATA2.
Se faccio saltare l'impostazione dei parametri il report funziona chiedendomi a video l'inserimento dei parametri.
Grazie per la collaborazione
------------------------------------------------------------------------------------------------------------------------------------
Dim cd1 as date,cd2 as date
Dim Data1 as string,Data2 as string
CRXApp.LogOnServer "p2ssql.dll", RifAmbiente.Server, "COnt", "saSystem", "password"
Set pReport = CRXApp.OpenReport(RifAmbiente.PathReport & "\" & r)
cd1 = CDate(DateAdd("s", 1, CDate(Data1)))
cd2 = CDate(DateAdd("s", 1, CDate(Data2)))
On Error GoTo ERR1
.....
For Each crxPar In myrep.ParameterFields
crxPar.ClearCurrentValueAndRange
Next
......
With myrep
For Each crxPar In myrep.ParameterFields
Select Case LCase(crxPar.Name)
Case "{?@pardata1}"
crxPar.AddCurrentValue cd1
Case "{?@pardata2}"
crxPar.AddCurrentValue cd2
Case Else
End Select
Next
End With
............
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 31 mar 2009 - 23:22
Ciao,
sinceramente non ho mai usato la tua versione di Crystal, però mi viene da pensare che sia possibile oltre che settare il valore al parametro che gli passi, anche il suo tipo (magari con qualche proprietà come "ParameterValueType") e quindi dopo avergli passato il valore in formato data, dirgli di "trattarlo" come data, che di default non sia proprio stringa quindi poi passandolo a sql viene dato qul messaggio.
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Torna su
Stanze Forum
Elenco Threads
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 !