Vraag : In een SQL Server Opgeslagen Procedure, hoe verklaar ik curseur gebruiken waar de clausule binnen als parameter overging?

Gebruikend SQL Server Uitdrukkelijke 2005, zou ik een Opgeslagen Procedure willen tot stand brengen die tot een curseur leidt die op een UITGEZOCHTE verklaring wordt gebaseerd die gebruikt WAAR de clausule binnen tot SP overging aangezien een parameter.
The SP dan de verdere bevelen van de UPDATE gebruikend de inhoud van cursor.

I eerder heeft kunnen zou doen afzonderlijke taken, ie
1) doen heeft SP SQL verklaring gebruiken over:gaan-binnen uitvoeren WAAR clause
@strSQLCommand = „SCHRAPPING VAN TBL_TempBarcodeData WAAR“ PLAATSTE + @paramWhereClause
EXEC (@strSQLCommand)

and
2) tot een curseur om met binnen een SP
leidt te werken VERKLAART myCursorCURSEUR FOR
UITGEZOCHTE Tran_MasterUniqID, Tran_ThisPaid, Tran_ThisDiscnt, Tran_NewFlagComplete
VAN TBL_WORK_TranAllocs
WAAR Tran_AddrKind = @paramAddrKind EN TBL_WORK_TranAllocs.Tran_AddrCode = @paramAddrCode EN (TBL_WORK_TranAllocs.Tran_ThisPaid<>0 OF TBL_WORK_TranAllocs.Tran_ThisDiscnt<>0)

(Deze twee voorbeelden zijn natuurlijk niet verwant, en moeten enkel aantonen wat ik het werken binnen SPs in het verleden heb kunnen krijgen.) tijd

This die ik zou willen om beide soorten acties combineren, d.w.z. een curseur creëren gebruikend een UITGEZOCHTE verklaring met over:gaan-binnen WAAR clausule. Mijn eigen pogingen hebben.

Can tot zover ontbroken iedereen me de SQL syntaxis toont die dit binnen SP zou bereiken?

Many dank,

Antwoord : In een SQL Server Opgeslagen Procedure, hoe verklaar ik curseur gebruiken waar de clausule binnen als parameter overging?

Colin,

Zolang uw app enige is overgaan WAAR de clausule, dan u waarschijnlijk redelijk veilig is.  De kwestie is niet uw code, niettemin.  SQL de Injecties zijn normaal niet de soort ding de ontwikkelaar in zijn app maar eerder, soort ding bouwt dat één of andere kwaadwillige ziel die op uw gegevensbestand struikelt uit zuivere hatelijkheid doet.

Misschien, in plaats van overgaan WAAR de clausule, u zou kunnen willen nadenken voorbijgaand de diverse parameters die voor het rapport werden geselecteerd.  U kon ONGELDIGE waarden voor unselected parameters overgaan, indien noodzakelijk.  Dan, binnen SP, voer uw die updates uit op de parameters in plaats van op „Magisch worden gebaseerd waar Clausule“.  Door de parameters te gebruiken, kunt u de injectieaanval (meestal omdat het een ongeldige SQL Verklaring in plaats van enkel het uitvoeren. zou veroorzaken) uitsluiten

Alle wijs op ik ben dat de techniek u (gebruikt of proberen te gebruiken) is inherent onveilig en zou moeten nooit een deel van een toepassing van het productiegegevensbestand zijn.  Het overtreedt de regels van alle bekende „Beste praktijken“.

Andere oplossingen  
 
programming4us programming4us