OVH Cloud OVH Cloud

Requete avec sp_addlinkedserver

26 réponses
Avatar
aitoz
Bonjour,

En inscrivant ma requete comme suivant, il m'indique que je dois activer et
désactiver les caractères ANSI !?
Comment faire dans ma procédure stockée ?

CREATE PROCEDURE ps_sgsa_suivifourrecep


@RE_RFOU VARCHAR(40)

AS
SELECT * FROM OPENQUERY (NOM_SERVEUR_LIE,
'SELECT GPRECEPT.RE_FOUR, GPRECEPT.RE_RFOU, GPRECEPT.RE_CODE,
GPRECEPT.RE_COMM, GPRECEPT.RE_LIGN, GPRECEPT.RE_ARTI,
GPRECEPT.RE_DESI, GPRECEPT.RE_NBRE, GPRECEPT.RE_QRST,
GPRECEPT.RE_UQTE, GPRECEPT.RE_CTVA, GPRECEPT.RE_PCDE,
GPRECEPT.RE_UPRI, GPRECEPT.RE_PRHT
FROM GPRECEPT
WHERE ( ( ( GPRECEPT.RE_RFOU)="@RE_RFOU") )
ORDER BY GPRECEPT.RE_FOUR, GPRECEPT.RE_RFOU'
)
GO

10 réponses

1 2 3
Avatar
Thierry
Désolé, je ne peux pas t'aider plus, je ne programme pas beaucoup en .NET

C'est pas normal d'obtenir seulement "erreur system" comme message d'erreur.

N'y a t-il pas un moyen en VB.NET d'obtenir "en clair" le message retourné
par SQL Server ? (try/catch+ collection SqlExeption.errors)

--
Thierry


"aitoz" a écrit dans le message de news:

Voici mon code en VB.NET :

'Définition de l'objet SqlCommand
Dim Dc_SuiviFour As New SqlClient.SqlCommand
Dim Da_SuiviFour As New SqlClient.SqlDataAdapter(Dc_SuiviFour)
Dim Ds_SuiviFour As New MyDataset17
Dim MyEtat As SGSA.SC_ST_SuiviRecFour

'Ouverture de la connexion
SqlConnection1.Open()
Dc_SuiviFour.Parameters.Add(New SqlClient.SqlParameter("@T1",
SqlDbType.VarChar, 40)).Value = T1
Dc_SuiviFour.Parameters.Add(New SqlClient.SqlParameter("@T2",
SqlDbType.VarChar, 40)).Value = T2
With Dc_SuiviFour
.Connection = SqlConnection1
.CommandType = CommandType.StoredProcedure
.CommandText = "ps_sgsa_suivifourrecep"
End With
Da_SuiviFour.Fill(Ds_SuiviFour)ic

Et voici le code de ma procédure stockée :

ALTER PROCEDURE ps_sgsa_suivifourrecep
@T1 VARCHAR(40),
@T2 VARCHAR(40)

AS
SELECT re_four, re_rfou, re_code, re_comm, re_lign, re_arti, re_desi,
re_nbre, re_qrst, re_uqte, re_ctva, re_pcde, re_upri, re_prht
FROM PFLEX...GPRECEPT GPRECEPT_1
WHERE (re_rfou BETWEEN @T1 AND @T2)
ORDER BY re_four, re_rfou

J'ai une erreur systeme au moment ou je fais le FILL.
Et je rappel que la procédure stockée fonctionne très bien quand je
l'execute via le query manager.
Elle fonoctionne très bien avec ces trois instructions :

EXEC ps_sgsa_suivifourrecep 901000, 902000
EXEC ps_sgsa_suivifourrecep '901000', '902000'
EXEC ps_sgsa_suivifourrecep "901000", "902000"

Merci de votre aide.

Pour finir je rappel que je lance le programme sur un poste client.



Avatar
aitoz
Je ne sais pas si je peux récupérer autrement l'erreur en vb.net.

J'ai essayé mais le peu que je connaisse me ressort la meme chose : erreur
systeme.
Sinon, je me demande s'il n'y a pas un probleme entre l'objet SQLcommand et
Ole Db !

Mince, autant de temps perdu pour finalement faire autrement !
Tu saurais comment écrire la même requete en utilisant OpenQuery ?
et après je ne t'embete plus ! hihihih

Merci
Avatar
Thierry
J'ai testé ton code VB.NET, ça fonctionne bien.
J'ai un peu cherché, voilà comment afficher l'erreur SQL au cas où...


Try
Da_SuiviFour.Fill(Ds_SuiviFour)
Catch e As SqlClient.SqlException
Err.Raise(vbObjectError + 513, "", e.Errors(0).Message)
End Try

--
Thierry


"aitoz" a écrit dans le message de news:

Je ne sais pas si je peux récupérer autrement l'erreur en vb.net.

J'ai essayé mais le peu que je connaisse me ressort la meme chose : erreur
systeme.
Sinon, je me demande s'il n'y a pas un probleme entre l'objet SQLcommand
et Ole Db !

Mince, autant de temps perdu pour finalement faire autrement !
Tu saurais comment écrire la même requete en utilisant OpenQuery ?
et après je ne t'embete plus ! hihihih

Merci



Avatar
aitoz
Tu dis que sur ton réseau ca fonctionne bien ?
voici l'erreur remontée !
Informations supplémentaires : Could not initialize data source object of
OLE DB provider 'VFPOLEDB'.

Ne le lache pas, sans toi je ne trouverais jamais !!! hihihi

Merci beaucoup en tous cas
Avatar
Thierry
Encore un problème de droits..

Ta connection depuis VB.NET se fait en login SA idem que le test effectué
avec l'analyseur de requête ?

--
Thierry


"aitoz" a écrit dans le message de news:
Ol2IJ$
Tu dis que sur ton réseau ca fonctionne bien ?
voici l'erreur remontée !
Informations supplémentaires : Could not initialize data source object of
OLE DB provider 'VFPOLEDB'.

Ne le lache pas, sans toi je ne trouverais jamais !!! hihihi

Merci beaucoup en tous cas



Avatar
Thierry
Il y a peut être un 2ème message d'erreur :

Try
Da_SuiviFour.Fill(Ds_SuiviFour)
Catch e As SqlClient.SqlException
Dim sqlErr As SqlClient.SqlError
For Each sqlErr In e.Errors
MsgBox(sqlErr.Message)
Next
End Try

--
Thierry


"aitoz" a écrit dans le message de news:
Ol2IJ$
Tu dis que sur ton réseau ca fonctionne bien ?
voici l'erreur remontée !
Informations supplémentaires : Could not initialize data source object of
OLE DB provider 'VFPOLEDB'.

Ne le lache pas, sans toi je ne trouverais jamais !!! hihihi

Merci beaucoup en tous cas



Avatar
aitoz
Il semble qu'il n'y ai pas de message d'erreur supplémentaire !
J'ai tester ton code et il intercepte dans un msgbox un message mais pas
deux !

probleme de droit ? Oui je veux bien, mais ^ù et à quel moment je dois
paramétrer le droit d'accès ?
Parce que la je suis sur un poste client, qui lance une procédure stockée
sur le sreveur SQL et qui récupère les données en locale dans un Dataset !

Je ne vois pas du tout comment faire ?
je vais essayer de me logger en Administrateur sur mon poste et je test !

Merci
Avatar
aitoz
Je ne peux pas me mettre avec le compte Administrateur sur mon poste.
je ne peux pas tester comme ca.
Il faudrait que j'envoi quelque chose ou que je paramètre mon compte comme
accédant avec droit d'admin.
Mais comment faire ?
Avatar
Thierry
Pour faire un test, tu ne peux pas te connecter à Sql Server avec le compte
SQL "sa" ?

Quelle est la chaine de connexion SQL dans ton appli VB ?

--
Thierry


"aitoz" a écrit dans le message de news:
%
Je ne peux pas me mettre avec le compte Administrateur sur mon poste.
je ne peux pas tester comme ca.
Il faudrait que j'envoi quelque chose ou que je paramètre mon compte comme
accédant avec droit d'admin.
Mais comment faire ?



Avatar
aitoz
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security
Infoúlse;User ID­ministrateur;Initial Catalog=SGSA;Data
Source=BOLL77220S2;Use Procedure for Prepare=1;Auto Translate=True;Packet
;Workstation ID=LAURENT;Use Encryption for Dataúlse;Tag with
column collation when possibleúlse

D'après toi je devrais utiliser un compte de connexion ?
j'essai !
1 2 3