Bonjour,

J'ai un bout de code qui me permet d'importer des données d'un fichier Excel, mais je n'arrive pas à le faire fonctionne à cause d'une erreur de syntaxe. Le chemin du fichier est envoyé en paramètre à ma procédure.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
CREATE PROCEDURE LectureExcel (
	@Chemin		nvarchar(1000))
AS
 
BEGIN TRY
BEGIN TRANSACTION
 
Insert into Elements (No_element, Nom_elem, Desc_elem, Tps_elem)
	Select No_element, Nom_elem, Desc_elem, Tps_elem 
	FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
		'Excel 8.0;Database=' + @Chemin + ';HDR=YES', 
		'SELECT No_element, Nom_elem, Desc_elem, Tps_elem FROM [Feuille1$]');
 
COMMIT TRANSACTION
END TRY
 
BEGIN CATCH
	IF XACT_STATE() = -1
    BEGIN
		ROLLBACK TRANSACTION
		RETURN	
	END;
    IF XACT_STATE() = 1
	BEGIN
		COMMIT TRANSACTION
	END;
END CATCH;
L'erreur que cela produit est : Incorrect syntax near '+' et il pointe sur la ligne 'Excel 8.0;Database=' + @Chemin + ';HDR=YES'

Mais je n'arrive pas à comprendre pourquoi la concaténation ne se fait pas entre mon paramètre et ma String dans le OpenRowSet.

Merci,

Évans