Avatar billede fizk Nybegynder
14. maj 2007 - 11:21 Der er 3 kommentarer og
1 løsning

Stored procedure - Datatype

Vi sidder lige og bøvler lidt med en stored Procedure, hvor vi har flg. "kode":

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[GetEmployeeType]
@username  [varchar],
@password  [varchar]

AS

SELECT Description, EmployeeTypeID FROM EmployeeType WHERE EmployeeTypeID IN (SELECT EmployeeTypeID FROM Employee WHERE Initials=@username AND Password=@password)

Som i og for sig virker godt nok, sådan delvist... Problemet er, at når vi prøver at execute den fra Ms Sql, vil den kun godtage varchar(1), hvilket resulterer i at vi kun kan søge på første karakter, selv om datatypen databasen er sat til varchar(MAX).

Er der nogen af jer kloge hoveder der kan forklare hvad man skal gøre (om muligt) for at kunne søge på hele strengen?
Avatar billede editone Nybegynder
14. maj 2007 - 11:39 #1
ALTER PROCEDURE [dbo].[GetEmployeeType]
@username  varchar(50),
@password  varchar(50)

AS

SELECT Description, EmployeeTypeID FROM EmployeeType WHERE EmployeeTypeID IN (SELECT EmployeeTypeID FROM Employee WHERE Initials=@username AND Password=@password)
Avatar billede fizk Nybegynder
14. maj 2007 - 11:42 #2
Crap ... Det er nok lige den eneste sammensætning vi ikke har prøvet! :D
Men den virker som den skal, så du skal ha' 1000 tak for hjælpen!
Avatar billede editone Nybegynder
14. maj 2007 - 11:46 #3
Det var så lidt :)
Avatar billede dr_chaos Nybegynder
14. maj 2007 - 20:23 #4
Et lille råd.
Lad være med at bruge subselects:
For at få den mest optimale query skal du bruge noget i denne stil:
SELECT et.Description, et.EmployeeTypeID FROM EmployeeType et
INNER JOIN Employee e ON e.EmployeeTypeID= et.EmployeeTypeID AND e.Initials=@username AND e.Password=@password
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester