Procédure stockée

Signaler
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
13 novembre 2006
-
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
13 novembre 2006
-
Bonjour,


J'ai un problème... J'ai un fichier toto.sql qui contient une procédure stockée que je dois exécuter mais je ne sais pas du tout comment faire!!!! en plus la procédure stockée contient un paramètre.

Merci de votre aide


 

10 réponses

Messages postés
520
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
3 mars 2008
2
quelle base de donnée ?
as tu mis la proc stock sur ton serveur sql ?
donnes nous ta procstock ca nous aidera aussi !

Rollerman
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
13 novembre 2006

non c'est un fichier toto.sql que je dois exécuter.
set

ANSI_NULLS
ON

GO
CREATE

proc [dbo]
.[toto]
as

BEGIN

.....
END

Go
EXEC

toto

La base de données est sous SQL server

Je dois exécuter cette procédure stockée, récupérer les données et les écrire dans un fichier csv
Messages postés
520
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
3 mars 2008
2
1. tu dois compiler cette proc stock sous l'analyseur de requete pour la créer dans ta base
2. pour executer la proc stock à partir de .net, utilises un objet sql.sqlcommand avec un sqlconnection
3. tu récupères tes données dans un datareader et tu en fais ce que tu veux

Rollerman
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
13 novembre 2006

ok merci c'est ce que je viens de faire...
Je récupère un dataset.

J'essaie maintnant d'avoir un fichier cvs.
Mais j'obtiens
Col1
Col2
Col3
Col4

Essai1
Essai2
Essai3
Essai4

Essai1_1
Essai2_1
Essai3_1
Essai4_1

Au lieu de
Col1         Col2           Col3        Col4
Essai1       Essai2        Essai3      Essai4
Essai1_1   Essai2_1   Essai3_1   Essai4_1

Voici mon code
Tryfs New FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.Write)sw

New StreamWriter(fs)

Dim table
As Data.DataTable

Dim row
As Data.DataRow

For
Each table
In ds.Tables

Dim numCols
As
Integer = table.Columns.Count

Dim i
As
Integer

For i = 0
To numCols - 1sw.WriteLine(table.Columns(i).ColumnName)

Next

For
Each row
In table.Rows

For i = 0
To numCols - 1sw.WriteLine(row(i))

Nextsw.WriteLine()

Next

Next 

sw.Flush()

sw.Close()

sw =

Nothingfs.Close()

fs =

Nothing

Catch

End
Try
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
13 novembre 2006

Euh... J'ai trouvé mon erreur... WriteLine au lieu de Write
Messages postés
520
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
3 mars 2008
2
remplace ton writeline par write

Rollerman
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
13 novembre 2006

Merci beaucoup Rollerman
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
13 novembre 2006

encore une p'tite question
Dans la fonction que j'utilise pour créer le dataset la fonction createDataset attend les paramètres suivants :
   * query as string --> je mets donc le nom de ma procédure
   * params() as system.Data.SqlClient.SqlParameter -->Je mets Quoi
   * CommandType --> Stored Procedure

Sachant que le paramètre de ma fonction est un varchar
Messages postés
520
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
3 mars 2008
2
dim myparams as new sql.sqlparameter
myparams.add("@nom_du_parametre", valeur_du_parametre)

et tu passes myparams a ton createdataset

Rollerman
Messages postés
21
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
13 novembre 2006

il ne reconnait pô sql.sqlparameter
alors je fais

Dim myparams
AsNew SqlParametermyparams.ParameterName "@nom_du_parametre"myparams.Value myHost

Mais quand j'insère dans ma fonction
command(nameProcStock, myparams, Data.CommandType.StoredProcedure)

J'ai l"erreur suivante sous myParams
Value of type 'System.Data.SqlClient.SqlParameter' canoot be converted to '1-dimmensional array of System.Data.SqlClient.SqlParameter'