webForumDet fria alternativet

Skapa procedur

8 svar · 294 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Är osäker på forumet, men det rör sig om ren SQL.
Jag har en SP som ser ut så här:

CREATE Procedure spVisaChart

AS
SELECT   t_SongTitlar.songtitel as Sångtitel, t_Område.Område,
(SELECT Count(DISTINCT t_Område.Område) FROM t_Område)as AntalOmr,
Count(t_Placering.Placering) AS AntalGånger FROM t_Område   
INNER JOIN (t_Placering INNER JOIN t_SongTitlar 
ON t_Placering.ArrNo = t_SongTitlar.ArrNo)  
ON (t_Område.omr_Id = t_Placering.omr_Id) AND (t_Område.omr_Id = t_Placering.omr_Id)  
Where t_Placering.Placering <> 0 AND t_Placering.Placering = 1 
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering   
ORDER BY  CASE t_Område.Område WHEN 'Sverige' THEN 1 WHEN 'Europa' THEN 2 ELSE 3 END
GO

Jag får ett error:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in system.data.dll

Additional information: System error.

Om jag därimot kör SQL:en direkt, då fungerar det:

string listSQL="SELECT   t_SongTitlar.songtitel, t_Område.Område," +
"(SELECT Count(DISTINCT t_Område.Område) FROM t_Område)as AntalOmr," +
"Count(t_Placering.Placering) AS AntalGånger FROM t_Område " +  
"INNER JOIN (t_Placering INNER JOIN t_SongTitlar " +  
"ON t_Placering.ArrNo = t_SongTitlar.ArrNo) " +  
"ON (t_Område.omr_Id = t_Placering.omr_Id) AND (t_Område.omr_Id = t_Placering.omr_Id) " +  
"Where t_Placering.Placering <> 0 AND t_Placering.Placering = 1 " + 
"GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering " +  
"ORDER BY  CASE t_Område.Område WHEN 'Sverige' THEN 1 WHEN 'Europa' THEN 2 ELSE 3 END";

Hur skall jag göra för att förhindra error?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Om du tar bort GO då? GO är inte en del av tsql.

sawMedlem sedan mars 20011 880 inlägg
#3

Error:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in system.data.dll
Additional information: System error.

Det hjälpte tyvärr inte.
På mina andra SP så har jag inte behövt att ta bort GO, och i QA så fungerar det kanon.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Du får alltså det felet i QA? I så fall verkar det vara ett MS-fel. Har du testat att söka i en konwledge-base på MSDN?

sawMedlem sedan mars 20011 880 inlägg
#5

Nej, du missuppfatar mig LarsG, jag får INTE det felet i QA, men när jag kör det i C#(windows) då får jag det, men om jag kör det som ren SQL(sama kod fast i en SQL_sträng) då fungerar det.
Jag hadde tänkt mig att så långt som möjligt göra SP av mina SQL, jag inbillar mig att det finns bl a tidsfaktorer att vinna, eller...?

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Vad händer om du försöker skapa proceduren i QA istället?

Varför vill du skapa procedure med hjälp av c#?

Jag vet inget om C# men kan det vara så att man kodar olika beroende på om statement returnerar data eller inte?

sawMedlem sedan mars 20011 880 inlägg
#7

Jag är tydligen kass att förklara idag.
1. Proceduren är skapad i QA
2. Jag får inga fel i QA
3. I EM så finns det inga syntaxfel.
4. Som jag nämde så har jag andra SP som jag kör via C", och jag använder mig av samma(nästan)kod.
5.På de andra SP så får jag inga ERROR i C# heller.

Personligen så utesluter jag språket(C#), utan jag undrar om det kunde vara någonting annat. Som jag ser det så ser SP:n och SQL:en likadan ut, eller...?

DinoMedlem sedan sep. 20011 914 inlägg
#8

Har du impoterat System.Data och System.Data.SqlClient.

sawMedlem sedan mars 20011 880 inlägg
#9

Du menar det här:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Drawing.Drawing2D;
using System.Drawing.Text;

Det som förvåna/irritera mig är ju att jag kan köra andra SP, men denna dj-as.

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)