Vra

Ek skryf 'n verslag in Visual Studio dat 'n toevoer van die gebruiker parameter neem en loop teen 'n ODBC data bron. Ek wil graag die navraag hand skryf en het verslagdoening dienste te vervang deel van die waar klousule met die parameter waarde voordat dit aan die databasis. Wat blyk te wees gebeur, is dat die @parmName Ek neem aan sal vervang word eintlik as deel van die SQL-stelling gestuur. Mis ek 'n opset opstel iewers of is dit net nie moontlik nie?

Ek is nie die gebruik van die opsie filter in die instrument, want dit lyk of terug die volle dataset uit die databasis van die filter op die SQL Server bring en te doen.

Was dit nuttig?

Oplossing

Dit klink soos wat jy nodig het om te behandel die SQL-stelling as 'n uitdrukking. Byvoorbeeld:

="Select col1, col2 from table 1 Where col3 = " & Parameters!Param1.Value 

As die waar klousule is 'n string wat jy nodig sou wees om die volgende te doen:

="Select col1, col2 from table 1 Where col3 = '" & Parameters!Param1.Value & "'"

Let wel: Moenie lyn breek in jou SQL-uitdrukking. As jy dit doen sal jy 'n fout kry.

Holla terug as jy nie meer hulp nodig het.

Ander wenke

Maak nie ODBC gebruik die ou "?" sintaksis vir parameters? Probeer hierdie:

select col1, col2 from table1 where col3 = ?

Die einde van jou parameters word belangrik dan, maar dit is minder vatbaar vir SQL-inspuiting as net die parameter waarde aanbring.

teëgekom dieselfde probleem probeer om 'n Access-databasis navraag via ODBC.

My oorspronklike navraag: SELECT A.1 FROM A WHERE A.1 = @parameter gelei tot foute. Verander na:. SELECT A.1 FROM A WHERE A.1 = ?

Jy moet dan die navraag parameter met jou verslag parameter te karteer.

Ek is 'n bietjie verward oor hierdie vraag, as jy op soek is na eenvoudige parameter gebruik dan die notasie is: *paramName*, maar as jy wil hê dat die WHERE klousule (as jy dalk in sql + behulp van?) Struktureel verander dan moet jy regtig wees met behulp van persoonlike kode binne die verslag 'n funksie wat die vereiste sql opbrengste vir die navraag te definieer.

Ongelukkig toe met behulp van persoonlike kode, parameters kan nie direk verwys word in die gegenereerde navraag maar moet hê daar Waarden saamgevoeg in die gevolglike String, dus bekendstelling van die potensiaal vir SQL inspuiting.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top