Procedure stockee => insertion des donnees dans une table

Description

Inserer des données dans une table (Juillet 2004)
----------------------------------------------------------------

P'tit script ecrit en vb.net qui montre
comment on peut insérer des données ds une table ms sql serveur
à l'aide d'une procedure stockee.
Si quelqu'un desire recevoir le code en c# qu'il m'envoye un p'tit mail
je me ferais un plaisir de lui traduire...

J'ai mis pas mal de commentaire

Qu 'est ce qu'une procedure stockee et ces avantages :
-----------------------------------------------------------------------

Une procédure stockée est comme son nom l?indique, une procédure manipulant les données écrite dans un langage procédural spécifique au SGBD et qui est stockée dans la base de données.

Les procédures stockées permettent une plus grande sécurité.
En effet, grâce à elles, vous pouvez retirer tous les droits des utilisateurs
sur une table et les obliger à employer vos procédures stockées (qui elles feront
ce que vous voulez exactement comme vous le voulez).
Tandis qu'un utilisateur qui
a des droits d'écriture sur une table peut faire ce qu'il veut.
Votre code est centralisé et la maintenance facilitée.
En effet, si vous décidez
de changer la structure de votre base de données, il vous suffit de mettre à jour
votre procédure stockée sans avoir à reprogrammer toutes les applications clientes.
Les procédures stockées sont exécutées sur le serveur. Comme en général le serveur
est une machine bien plus puissante que les pc clients, les temps de réponses sont bien plus performants.
Les procédures stockées sont précompilées. Cela signifie que les requêtes ne doivent
plus être ni parsées ni interprétées. Ce qui augmente fortement les performances.

Elles sont rapide à utiliser, utilise la puissance du serveur,
elles soulagent donc un peu le trafic réseaux.

Pour en savoir plus encore ....suivez ce lien

http://www.delphifr.com/code.aspx?ID=22175

Pour faire tourner le script :
-------------------------------------

Il vous suffit d'ouvrir le fichier en .sql et de le coller
dans l'analyseur de requetes et de l'executer...
Cela créera la structure de la table ainsi que la procedure stockee nommé => ajout

ensuite ouvrez le fichier global.asax
et changez les propriete de la connection, mettez le nom de
votre base de donnees

ICI =>
myConnection.Connectionstring = "server=(local);Initial Catalog=NomDeVotreBase;trusted_connection=yes"

Voila enregistrez le tout...

ca roule

Source / Exemple :


--PROCEDURE STOCKEE AJOUT 

create  proc ajout 

--DELCARATIONS VARIABLES
@insertnom       varchar(20),
@insertprenom    varchar(20),
@insertadresse   varchar(50),
@insertville     varchar(30),
@inserttelephone varchar(20)

--REQUETE INSERTION DS LA TABLE UTILISATEURS
as
insert  into dbo.utilisateurs (nom, prenom, adresse, ville, telephone)
--VALEURS 
 values (@insertnom, @insertprenom, @insertadresse, @insertville, @inserttelephone)

'-----  FORMULAIRE AJOUT DE CONTACT -----------

'ENREGISTREMENT DES DONNEES DS LA BASE
    Sub BtnValide_Click(sender As Object, e As EventArgs)
    
       ' ---- VARIABLE CONTENANT LA PAGE DE REDIRECTION ----
    dim RedirectionURL as string= "AfficheFile.aspx"
    
    
     '----  SI LE TEXTBOXNOM EST VIDE ON AFFICHE UN P TIT MESSAGE ERREUR ---
    
      IF (txtboxnom.text = "") then
         labelerreur.text = "Veuillez completer le formulaire svp...!"
    
      ' ----SINON ON ENvOIT TOUTES LES DONNEES A LA PROCEDURE STOCKEE ---
    
      Else
    
      ' --- RECUPERATION CONNECTION  DS LE FICHIER GLOBAL.ASAX ---
        myConnection = Ctype(Session("myConnection"),sqlConnection)
    
    
       '--- DECLARATION -------
        Dim  Mycommand as new sqlcommand
        MyCommand = New SqlCommand("ajout",MyConnection)
        MyCommand.CommandType = commandType.StoredProcedure
        Dim CommandAdapter As SqlDataAdapter
    
        '---- PARAMETRE PASSE A LA PROCEDURE STOCKEE => AJOUT -----
        '---- ON PLACE DONC LES VALEURS CONTENUES DS LES TEXTBOX ----
        '---  DS LES VARIABLES POUR LA PROCEDURE STOCKEE      ----
        Mycommand.parameters.add("@insertnom", SqlDbType.nvarchar).value = Txtboxnom.text
        Mycommand.parameters.add("@insertprenom", SqlDbType.nvarchar).value = TxtBoxprenom.text
        Mycommand.parameters.add("@insertadresse", SqlDbType.nvarchar).value = TxtBoxad.text
        Mycommand.parameters.add("@insertville", SqlDbType.nvarchar).value = TxtBoxvi.text
        Mycommand.parameters.add("@inserttelephone", SqlDbType.nvarchar).value =TxtBoxtel.text
    
        '----GESTION ERREURS -----------
    
    
        Try
         ' ---ici on met le code à exécuter risquant d?engendrer l?erreur
    
          '----- EXECUTE LA COMMANDE -----
         'Exécute une instruction Transact-SQL sur la connexion et peut retourner
         ' le nombre de lignes affectées
    
          Mycommand.ExecuteNonQuery()
    
          '---- REDIRECTION -------
          Response.Redirect(RedirectionURL)
    
    
    
        Catch
          ' ---ici on place le code à exécuter si l?erreur se produit
          labelerreur.text = "Une erreur s'est produite"
    
    
        End Try
         ' ----- FERMETURE CONNECTION ------
          Myconnection.close()
    
    'FIN
    end if
    
    
    End Sub

Conclusion :


Enjoy

Christophe

http://membres.lycos.fr/annmysql/

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.