Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Vad är fel med denna Stored Procedure?

Postades av 2006-10-10 17:00:32 - Robert Åström, i forum sql-server/msde, Tråden har 9 Kommentarer och lästs av 1225 personer

Hej!

Har gjort en test testsida för att plocka ut data ur en SQL databas med hjälpa av en stored procedure som jag kallar sp_test. Jag vill ha ut poster med ett unikt nummer som jag kallar "MSA" i databasen. De poster jag vill ha ut på min testida ska ha "MSA" 31.04. Variabeln "vMSA" i koden tilldelas detta nummer.

Tyvärr så plockar proceduren ut andra poster med andra "MSA", istället för det unika jag tilldelar variabeln "vMSA". Exempelvis kommer poster med MSA 31.10 med i resultatet också. Detta fastän jag specifikt sätter variablen som skickas till min procedure. Nedan är den korta koden för hämtning av data från SQL-server via ASP. Under ASP-koden finns sedan koden till den Stored Procedure jag anropar på ASP sidan. Kan någon vänlig själ kolla och kanske se vad som är fel? Tacksam för all hjälp jag lan får med detta. Tack på förhand!

Koden på ASP-sidan ser ut så här:

<%
Dim vMSA
vMSA = "31.04"
Set objConn = Server.CreateObject("ADODB.Connection")
Set ObjRec=Server.CreateObject("ADODB.RecordSet")
With objConn
.ConnectionString="Provider=sqloledb;Data Source=eltel-networks;Initial Catalog=ElTel;User
Id=*****;Password=*****;"
.Open
End With
With ObjRec
.ActiveConnection = objConn
.Source = "sp_test " & vMSA ,objConn
.Open ,,1,2
End With
%>

Min storec procedure ser ut så här:

CREATE proc sp_test
@vMSA numeric
AS
SELECT * FROM Registrering WHERE MSA=@vMSA ORDER BY ID DESC
GO


Svara

Sv: Vad är fel med denna Stored Procedure?

Postades av 2006-10-10 17:07:29 - Robert Åström

Hej igen!

Har kommit på att det måste ha något med punkten i "MSA" att göra. Jag ville ha ut poster med "MSA" med värdet 31.04. Men jag får också ut poster med värdena 31.06 och 31.10. Har andra "MSA" som heter exempelvis 32.10 och de plockas inte ut. Är det så att SQL server inte tar med hela "MSA" utan bara går på det före punkten? Hur gör jag i så fall för att variabeln ska tolkas som en sträng och hur formulerar jag det i min stored procedure?


Svara

Sv:Vad är fel med denna Stored Procedure?

Postades av 2006-10-11 08:58:13 - Fredrik Molnar

Hej, inte relaterat till frågeställningen, men att ha stored procedures som heter "sp_nånting" är en dålig idé, detta gör att SQL-servern automatiskt letar i Master-databasen efter SPn först och sen om den inte hittas så letar den i din databas. Om inte detta är ändrat på senare tid, men jag har inte hört något om det.

Ang. din fråga, det behövs nog lite mer information om datatyper i tabellen, det låter som om det är något där som strular (eller WAI).


Svara

Sv: Vad är fel med denna Stored Procedure?

Postades av 2006-10-12 08:44:01 - Robert Åström

Tack för synpunkten ang namnet på proceduren. När det gäller datatyper så är det nog där det felar på något vis. Variabeln jag använder i proceduren tilldelas ett värde från en sessionsvariabel i skriptet som har värdet "31.04" exempelvis. Men när denna variabel "läses" av proceduren så blir den alltså bara "31" som det verkar, eftersom jag får ut alla poster som har värde som börjar med 31, såsom 31.09 osv.

Jag har testat att ändra datatyp i proceduren men det blir ingen skillnad. Vore oerhört tacksam om någon riktigt kunnig kunde kika lite på detta och förhoppningsvis se vad jag gör för fel. Tack på förhand!


Svara

Sv:Vad är fel med denna Stored Procedure?

Postades av 2006-10-12 08:49:38 - Fredrik Molnar

Vad har du för datatyp i tabellen?


Svara

Sv: Vad är fel med denna Stored Procedure?

Postades av 2006-10-12 09:40:59 - Robert Åström

Motsvarande värdet i tabellen är i av typen varchar, och i det fältet fylls alltså i ett värde som kallas "MSA" och består av typen 31.01, 31.02 osv. Men jag får bara fram 31 till proceduren.


Svara

Sv:Vad är fel med denna Stored Procedure?

Postades av 2006-10-12 09:57:45 - Fredrik Molnar

Ok, du får ju använda samma datatyp i SPn..

<code>
CREATE proc sp_test
@vMSA varchar(53)
AS
SELECT * FROM Registrering WHERE MSA=@vMSA ORDER BY ID DESC
GO
</code>


Ev. får du ändra om i din asp-kod:

<code>
With ObjRec
.ActiveConnection = objConn
.Source = "sp_test '" & vMSA & "'",objConn
.Open ,,1,2
End With
</code>

Jag har ingen möjliget att testa asp, men jag gjorde en testdatabas och:
<code>
sp_test '31.12'
</code>
i en Query Analyzer producerar önskvärt resultat.. :)


Svara

Sv: Vad är fel med denna Stored Procedure?

Postades av 2006-10-12 11:23:32 - Robert Åström

Nu fungerade det! TACK! :-)
Jag är mer eller mindre novis när det gäller stored procedures, så jag vore tacksam om du kan förklarar den där parentesen med 53 brevid datatypen. Jag har testat med enbart varchar förut, och samma typ av procedure med datatypen "int" behöver inte någon parentes för att fungera.

Hur som helst STORT tack för hjälpen med detta!


Svara

Sv:Vad är fel med denna Stored Procedure?

Postades av 2006-10-12 11:35:29 - Fredrik Molnar

Parentesen anger hur många byte som skall allokeras till datatypen. Jag valde (53) eftersom det är "standardstorleken" en varchar får när man skapar den i tabellen (scripta ut tabellen och kolla), när man i SPn definerar en varchar utan längd så får den en standardlängd (för att spara minne antar jag), och förmodligen är den för liten för att innehålla hela variablen du skickar in, därför blev det fel.

Som standard bruka jag deklarera alla variabler i SP i samma storlek som i tabellen jag ska göra urval, man får mindre problem då.. :)


Svara

Sv: Vad är fel med denna Stored Procedure?

Postades av 2006-10-12 12:48:07 - Robert Åström

Ok, toppen! Tack återigen för hjälpen och tipsen!


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 617
27 953
271 709
5 723
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies