Les clients Easysoft utilisent notre pilote ODBC Salesforce.com pour travailler avec les données Salesforce.com dans SQL Server. Des difficultés surviennent lorsque les clients tentent d'insérer des données d'objets volumineux dans Salesforce.com à partir de SQL Server. Par exemple, tenter d'insérer des données dans le champ de description Produit2 :
INSERT OPENQUERY (SALESFORCE, 'SELECT Name, ProductCode, Description FROM Product2') VALUES ('LongProd', 'LP01', 'My Long Field');
OLE DB provider "MSDASQL" for linked server "SALESFORCE" returned message "Query-based insertion or updating of BLOB values is not supported."
Cet INSERT échoue, comme indiqué par le message d'erreur résultant. Le problème sous-jacent semble être que pour certaines méthodes INSERT, vous ne pouvez pas mettre à jour un champ LONGVARCHAR/LONGNVARCHAR à partir de SQL Server lors de l'utilisation d'un serveur lié basé sur ODBC. (Le champ du problème, Description, est une TEXTAREA Salesforce.com, que le pilote ODBC Salesforce.com signale à SQL Server en tant que LONGNVARCHAR.)
Le seul moyen que nous ayons trouvé pour insérer des données d'objet volumineux dans Salesforce.com est :
EXEC ('INSERT INTO Product2 ( [Name], ProductCode, [Description] ) VALUES ( ''MyProduct'', ''MP01'', ''MyProduct long description'')') AT MySalesforceLinkedServer
Vraisemblablement, cette méthode réussit car la couche dans SQL Server qui s'oppose à l'insertion de données LONGVARCHAR n'est pas utilisée. (Bien que cette méthode utilise toujours un serveur lié, et donc le pilote ODBC Salesforce.com.)
Voir aussi
- Conseils pour utiliser SQL Server avec Salesforce
- Utilisation de INSERT INTO à partir de SQL Server pour modifier les données Salesforce