> Tech > I. Paramétrage des requêtes côté client (2)

I. Paramétrage des requêtes côté client (2)

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

Si le paramétrage côté client est mal programmé il peut causer plus de dégradation que de gain.
Puisque le serveur ne peut pas paramétrer les requêtes, et l'avantage du paramétrage simple ou obligatoire est perdu. Nous essayerons d'illustrer certaines des erreurs communément faites, et recommanderons également quelques bonnes

I. Paramétrage des requêtes côté client (2)

pratiques.

Considérez l’exemple au-dessous où le code client se fonde entièrement sur le paramétrage de côté de serveur :

command.CommandText = "Select * From t1 Where col1 = 1 And col2 = ‘abcd’";
command.ExecuteNonQuery();
command.CommandText = "Select * From t1 Where col1 = 1 And col2 = ‘abc’";
command.ExecuteNonQuery();

Ceci a comme conséquence un plan paramétré, le serveur effectue le paramétrage :

(@1 tinyint,@2 varchar(8000))SELECT * FROM [t1] WHERE [col1]=@1 AND [col2]=@2

Notez qu’en l’absence de paramétrage du côté client, le mappage forcé des types côté serveur s’applique. Toutes les requêtes sont mappées à Varchar (8000) ou à Nvarchar (4000). Si le paramètre est plus grand que Varchar(8000) alors Nvarchar(max) est utilisé.

Tandis que ceci peut sembler acceptable, si les paramètres sont toujours limités à disons 50 caractères (limités par le type et la longueur de la colonne), ce n’est pas une solution optimale. Considérez maintenant l’exemple suivant où la requête a été paramétrée incorrectement :

command.CommandText = "Select * From t1 Where col1 = @id And col2 = @str";
command.Parameters.AddWithValue("@id", 1);
command.Parameters.AddWithValue("@str", "abc");
command.ExecuteNonQuery();
command.Parameters[0].Value = 2;
command.Parameters[1].Value = "abcd";
command.ExecuteNonQuery();

Téléchargez cette ressource

Microsoft 365 Tenant Resilience

Microsoft 365 Tenant Resilience

Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.

Les plus consultés sur iTPro.fr

A lire aussi sur le site

À la une de la chaîne Tech