Hej Jag hade det en gång och upptäckte då att det berodde på att det sista steget i min SP inte returnerade ett recordset, dvs. den slutade inte med en SELECT-sats. För alla problem av den här typen finns egentligen bara ett svar, testkör dittt program med Profiler igång. På det viset kan se och testa exakt vad SQL-Server får för frågor från ditt program och se om de funkar i Query-Analyzern... Hmm Jag har varit i samma läge själv vid ett tillfälle och då hjälpte det inte att använda ett commandobject, då fick jag skriva om frågan för att problemet låg i att svarstiden på frågan var för lång... Svarstiden är OK.Rs.connection - hämta data
Mitt VB-program som kopplar upp sig till en databas och antingen
sammanställer standardstatistik eller använder sig av en valfri
stored procedure för att hämta data och rita grafer utifrån det som
hämtats har fungerat finfint fram tills idag.
Det som är så konstigt är att om jag använder en viss sp innifrån
programmet hämtas ingen data (den utförs för jag får tillbaka
rubrikerna). Om jag däremot utför samma sp i Guery Analyzern får jag
tillbaka 229 rader.
Någon som varit med om detta och kan tänkas veta något bra sätt att
komma runt det?Sv: Rs.connection - hämta data
Det såg ut att funka i Query Analyzer men det var nada data i VB.
Det slutade med att jag tog bort RETURN 0 från SP:n och då funkade det. Annars kan du som sagt kolla permissions. Enkast gr du detta genom att låta VB-applikationen logga in som SA (bara under testversionen). Funkar det då så beror det på rättigheter.Sv: Rs.connection - hämta data
Sv: Rs.connection - hämta data
lite mer info:
1. jag loggar på som sa - har ett inloggningsfönster där jag väljer:
server, databas, inloggningsnamn och pw. Eftersom allt är i test-
stadiet fortfarande har vi inte brytt oss om att implementera
några andra användare som vi använder (det är bara utvecklare
som kan koppla upp sig ändå)
2. Alla andra sp:s som skrivs in i samma fönster och nyttjar samma
kod fungerar - det är bara denna enda som inte fungerar
3. Jag har rättigheter både till sp:s och databas
4. Frågan går igenom - returnerar kolumnhuvudena men ingen data
5. Har gjort en trace - jämförde resultatet mellan att utföra sp:n i
QA och i VB - de verkade se likadana ut, med en skillnad - resultatet.
6. Här kommer sp:n som den ser ut idag:
CREATE PROCEDURE spJSGetBestAvvikelse
( @Art integer -- artikelnr
)
as
select sum(summa)/medel as avvikelse ,
datename(dw,datum) as veckodag,
datepart(yyyy,datum)*100+datepart(wk,datum)+(datepart(dw,datum)-4)/7.0 as veckonr,
datum as datum,
0 as dum,
p.periodID
from
(
select sum(b.sdtantal) as summa,
b.sdtlevdat as datum
from tblBestallning b
where b.artartnr=@Art
-- and b.sdtLevDat between @periodstart and @periodsslut
group by b.sdtLevDat
) as tmp1, tblPeriod p, tblBPstatistik s
where datum between fromdatum and tomdatum
and p.periodID=s.periodID
and s.artartnr=@Art
and s.veckodag=datename(dw,datum)
and s.ar=datepart(yyyy,datum)
group by datum,p.periodID,medel
order by veckodag,datum
jag sitter just nu och testar att använda command-objekt istället för
con.execute(sp) som jag gjort innan - tyvärr är databasen med de
tabellerna jag borde testa mot nere för tillfället. Har testat mot en
annan db - tyvärr ligger inte den konstiga sp:n eller de tabeller den
utnyttjar där, så jag vet inte om det gör någon skillnad.
Alla idéer mottages tacksamt!
/EmmaSv: Rs.connection - hämta data
Hoppas att det hjälper dig också...Sv: Rs.connection - hämta data
Commandobjekt hjälpte inte.
Däremot visade det sig att det var fel språk i programmet, insåg inte
att den testtabellen och sp:n inte använda samma språk. Så nu
fungerar det finfint!
/Emma