2009-09-17 6 views

Répondre

1

L'interrogation directe des bases de données SharePoint n'est pas prise en charge. Vous devez utiliser l'API. En dehors de la raison officielle "non supporté", il peut provoquer un verrouillage, renvoyer des données incorrectes, et les requêtes personnalisées peuvent casser entre les Service Packs ou les versions de produits. Voir le message de Mike Fitz Please Stay Out Of The Database! de son temps chez Microsoft.

Voir ce Visual How To pour un exemple d'utilisation de l'API prise en charge. Voir également these articles on MSDN et cet article best practices pour plus d'informations.

+1

Exactement, même un simple SELECT peut mettre un verrou sur une table, ce qui pourrait conduire à des résultats sur le site unforseen réel (s) lui-même/eux-mêmes. – Colin

+0

Je sais comment faire cela avec l'API SharePoint. Ce que je veux, c'est interroger la base de données. Ce que vous essayez d'expliquer, c'est bien. Je comprends parfaitement votre préoccupation. Je vais prendre soin de la base de données pour sa cohérence. Avez-vous une idée comment puis-je obtenir lastmodifieddate d'un document à partir de la base de données directement à l'aide de la requête? –

+0

@Ravi: OK, je vois que vous avez posé une question similaire hier et j'ai donné la même réponse. Si vous ** devez absolument ** le faire, veuillez utiliser NOLOCK ou équivalent partout. Comme on peut le voir sur le schéma, ceci est stocké comme un bigint. Dans .NET, il est probablement utilisé avec le constructeur DateTime (Int64). Ne peut pas aider avec la conversion dans Transact-SQL désolé. –

0

J'ai obtenu les ans

DECLARE @dt AS bigint 
SET @dt = <BIGINT> 
SELECT DATEADD(ms, (@dt/CAST(10000 AS bigint)) % 86400000, 
DATEADD(day, @dt/CAST(864000000000 AS bigint) - 109207, 0)) 
Questions connexes