2017-04-14 2 views
0

Je suis à la recherche d'un problème nHibernate. Exception thrown: 'NHibernate.Exceptions.GenericADOException' in NHibernate.dll est tout ce qu'il me dit. J'ai show_sql mis à vrai. J'ai donc pensé que j'essaierais le sql de nHibernate manuellement dans SQL Server Management Studio. J'ai ajouté les instructions DECLARE. Maintenant j'obtiens cette erreur: `Syntaxe incorrecte près de '@ p0' 'lors de l'exécution sur la dernière ligne. Qu'est-ce que je fais mal?Conversion de nHibernate sql en sql manuel

DECLARE @p0 VARCHAR(50); 
DECLARE @p1 INT; 
DECLARE @p2 DATETIME; 
DECLARE @p3 INT; 
DECLARE @p4 VARCHAR(10); 
DECLARE @p5 VARCHAR(50); 
DECLARE @p6 VARCHAR(80); 
DECLARE @p7 DECIMAL(11,2); 
DECLARE @p8 DATETIME; 
DECLARE @p9 VARCHAR(80); 
DECLARE @p10 INT; 
DECLARE @p11 VARCHAR(50); 

INSERT INTO MMDAML.dbo.tblMyProjectTable 
(Name, Size, UploadDate, RefId, RefType, Type, Alias, Amount, Date, Number, Stage, Caption) VALUES 
(@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11); 
select SCOPE_IDENTITY(); 
@p0 = 'Project317.png' [Type: String (4000)], @p1 = 77756 [Type: Int32 (0)], @p2 = 4/14/2017 10:51:54 AM [Type: DateTime (0)], @p3 = 317 [Type: Int32 (0)], @p4 = 'Project' [Type: String (4000)], @p5 = 'Invoice' [Type: String (4000)], @p6 = 'Contract.png' [Type: String (4000)], @p7 = 4455 [Type: Decimal (0)], @p8 = 4/14/2017 10:51:23 AM [Type: DateTime (0)], @p9 = '987987' [Type: String (4000)], @p10 = 0 [Type: Int32 (0)], @p11 = NULL [Type: String (4000)] 

Répondre

1

; est un symbole pour séparer le lot, vous devez ajouter un autre mot-clé ou SETSELECT avant @p0 pour en faire une déclaration complète. Par exemple,

select SCOPE_IDENTITY(); 
SET @p0 = 'Project317.png'... 

OU

select SCOPE_IDENTITY(); 
SELECT @p0 = 'Project317.png'... 
+0

qui me fait le plus de chemin. J'ai également dû supprimer le [Type: *] et mettre les valeurs des paramètres de date entre guillemets et également déplacer le SET avant l'INSERT. –

+0

vous avez raison :) – LONG