Bonjour,
je dois lire et écrire dans des fichiers excel (Ce format m'est imposé...). Je n'ai aucun problème pour lire avec la requête :
select * from OPENROWSET('MSDASQL', 'DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb);UID=admin;UserCommitSync=Yes;SafeTransactions=1;ReadOnly=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=48;FIL=excel 12.0;DriverId=1046;DefaultDir=C:\dev\IHF\2014tests\Export\Retour_Test.xlsx' , 'SELECT * FROM [QuestStd$A1:A2]')
Par contre, impossible d'écrire :
1 2
| insert into OPENROWSET('MSDASQL', 'DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb);UID=admin;UserCommitSync=Yes;SafeTransactions=1;ReadOnly=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=48;FIL=excel 12.0;DriverId=1046;DefaultDir=C:\dev\IHF\2014tests\Export\Retour_Test.xlsx' , 'SELECT * FROM [QuestStd$A1:A2]')
select 'test' |
me renvoie l'erreur :
Msg 7390, Level 16, State 2, Line 1
The requested operation could not be performed because OLE DB provider "MSDASQL" for linked server "(null)" does not support the required transaction interface.
Le problème semble être que mon driver de gère pas les transaction. Or, je n'en ai pas besoin pour écrire dans ce fichier. Puis-je les désactiver ? Je sais que l'option existe avec les serveur liés ('remote proc transaction promotion') mais je ne trouve pas comment modifier ça dans mes requêtes.
Merci d'avance pour votre aide, et bonne journée !
Partager