27. januar 2004 - 10:24Der er
27 kommentarer og 1 løsning
Retunere noget fra funktion
Jeg har en funktion som udføre en stored procedure. Denne stored procedure finder en UserID som funktionen så skal retunere tilbage. Hvordan implementere jeg lige det?
function checkUser(username, password, license) dim userID dim userIdReq
set getsmsstatus = Server.CreateObject("ADODB.Recordset")
Nute lige et sidste spørgsmål inden du får pointene. Når jeg når til så giver den fejl igen. Jeg har lavet nogle simple data'er. userIdReq.EOF slet ikke indeholder data ellers skal konvertes til INT først.
Jeg har også prøvet med dit eksempel. Den køre hellere ikke. Jeg har testet stored procedure og den fungere. Den retunere en userID som den skal.
if not userIdReq.EOF then checkUser = 2 else checkUser = -1 end if
hmm ... jeg må ærlig indrømme at jeg aldrig har brugt stored procedures sammen med ASP (men java og C#) ... men ... skal du ikke bruge 'Execute' istedenfor 'exec' ?
Jeg er også mest til at bruge stored procedures i C#. Jeg har prøvet med EXECUTE men det hjælp ikke. Jeg har en lang funktioner lignende i den samme dokument som jeg arbejder på. Har gjort det præcis på samme måde. Det kan også være at fejlen er et helt andet sted.
har du gjort noget så simpelt som at lægge et og et parameter på ? start med at hardkode værdierne for userid, username, password og licence ind i din stored procedure og køre din SP uden parametre. hvis det fungerer, så sender du userid med over. på denne måde finder du hurtig ud af hvad der kan være galt. hvis den allerede fejler når du ikke sender nogle parametre med over, så er det jo lidt skummelt :-|
jeg har prøvet at tage værdierne en af gangen. Hvis det skal være helt præcist så får jeg denne fejl. Men denne fejl opstår pga stored procedure. Det øverste er fra siden default.asp
AHH !!!! dette er jo ikke en SQL relateret fejl. det er fordi du ikke har "" rundt dine attributter på HTML tags. du skriver til browser som XML, så skal du også skrive valid XML ;-)
Det er faktisk det der er mystist for jeg har slet ikke noget html kode i mine asp sider. I default.asp siden er der en lang række "case" hvor der udføres noget kode. Det samme i mit andet funktion dokument. Der er en enkelt html side som sender et xml dokument til default.asp siden, som så udfra en værdi i xml dokumentet finder ud af hvilken case den skal udføre. Der retuneres en xml dokument. Så hvordan compileren kan klage over at der mangler et " tegn i default.asp siden forstår jeg ikke helt.
øv ... det var da ærgerlig :-( jeg er sikker på at det er en meget lille ting der går galt. men .. det er jo lidt problematisk at sidde her og hjælpe når man ikke har tilgang til det hele, men sådan er det nu engang med et forum.
jeg håber alligevel du kan klare at finde ud af det. jeg tror nok du skal kigge på den XML du får sendt tilbage. det lyder som om scriptet fungerer fint, men det er når du sender XML tilbage det går galt
Hej Nute, Jeg har fået løst problemet. Nogen gange kan det hjælpe at holde en pause og se på tingene endnu gang. Jeg fandt ud af at fejlen rent faktisk lå i stored procedure. I mit stored procedure bliver der retuneret et userID, dvs. en enkel værdi og ikke en recordset eller resultset. Så derfor kunne jeg ikke bruge test.EOF. Så jeg kodede mit stored procedure helt om til istedet at bruge parametre og så kørte det. Her er link til siden der beskriver løsning til problemet: http://support.microsoft.com/default.aspx?scid=kb;EN-US;190762
ahh ... men det er jeg da glad for at høre :) må ærlig indrømme at det overhovedet ikke faldt mig ind at spørge om din SP returnerede et recordset eller kun en værdi :-( men men ... det er da godt at du har fået det opp at køre
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.