Avatar billede jensb Nybegynder
24. juli 2002 - 01:33 Der er 7 kommentarer og
3 løsninger

Et par blandede ASP spørgsmål

Så gik der endnu en dag foran computeren, hvor jeg har forsøgt at lære ASP. Det går efterhånde ok, men følgende spørgsmål er dukket op i løbet af dagen :

1.
Jeg har lidt problemer med nogle variable. Jeg tror det har noget at gøre med om de bliver opfattet som tekst eller tal. Jeg har følgende konkrete problem -

Hvis jeg vil hente nogle poster i min database som tilhørere en bestemt varegruppe. I databasen angives varegruppen med et nummer, så hvis jeg f.eks. ville have alle fra gruppe fire kunne det se således ud

strSQL = "Select * From varer Where varegruppe = 4"

og det virker fint nok. Problemet er at det ikke altid er nummer fire jeg vil have fat i. Det nummer jeg vil have fat i, det skal hentes i en cookie. Jeg har styr på hvordan dette skal gøres, og kan sagtens få det til at virke i andre tilfælde. Men jeg tror problemet er at den værdi der hentes i cookien er en tekst værdi, og derfor virker det ikke rigtigt når det er en talværdi jeg prøver at sammenligne med. Lyder det rigtigt? er der forskel på tekst og tal? og er der i så fald en måde hvorpå man kan definere/omdanne en variable så det bliver et tal eller omvendt?


2.
Jeg har forsøgt at lære ASP ved hjælp af en tutorial på html.dk  Jeg har lagt mærke til at de altid kalder deres variable noget i stil med strNavn osv.  Er der en grund til at de altid skriver str foran, eller er det fuldkommen ligemeget hvad en variabel heddeR?


3. Kan man lave et loop i et loop?

Jeg har to tabeller i min database. Den ene er med varegrupper og ser således ud

gruppenummer  gruppenavn

Den anden er med varene og ser således ud

varenummer    gruppenummer  varenavn  ....osv

Så alle varer hører til en varegruppe.

hvis nu jeg gerne vil lave en liste over samtlige varer, med underopdelinge i varegrupper, så er jeg kommet frem til at man burde kunne lave det med en loop i en loop. Det ville så være i stil med

Do
skriv navnet på varegruppen
  Do
  Skriv alle varer med dette varegruppenummer
  Loop indtil der ikke er flere i denne gruppe
Loop indtil der ikke er flere varegrupper

Men kan man det? altså lave en loop i loop?


4.
Jeg har som sagt gennemgået den tutorial på html.dk men det er jo kun det helt grundlæggende man lærer der. Jeg synes allerede nu at jeg godt kunne tænke mig at lære noget mere, så kan i anbefale nogle gode bøger? De SKAL være på dansk (gider ikke læse engelsk i min fritid, det er der nok af i skolen)


Det var vist hvad dagen har bragt af spørgsmål. Nu vil jeg smutte i seng, så jeg svarer tjekker ikke ind på dette spørgsmål før i morgen engang, hvor jeg så håber der er nogle gode svar så jeg kan komme videre.

Tak

Jens
Avatar billede easysoft_studios Nybegynder
24. juli 2002 - 01:52 #1
1 )
når du skal læse tal :

strSQL = "Select * From varer Where varegruppe = " & 4

når du skal læse tekst :

strSQL = "Select * From varer Where varegruppe = '" & tekst her & "'"

håber du forstår :)
Avatar billede a1a1 Novice
24. juli 2002 - 01:52 #2
1, 2 der er ikke forskel på tal og bogstaver i ASP, men aligevel er der

hvis du fx. skriver
iTal = cdbl(request.querystring("tal"))
vil du "tvinge" ASP fortolkern til at opfatte/konvertere request.querystring("tal") som/til et tal

der efter kan du så sige om tallet er størrere end et eller andet (det bliver opfattet som et tal)
hvis du skriver
iTal = Request.querstring("tal")
bliver det af ASP fortolkeren opfattet som en streng.....
og du vil ikke kunne sige om iTal er størrere eller mindre end et andet tal

det lyder lidt forvirrende er jeg bange for, men det er det også :)

når det så kommer til din strSQL er det noget (lidt) andet, det du sender i din strSQL (til databasen) bliver nemlig "sendt" som en streng til databasen..
hvis du fx har din sql sån.
strSQL = "SELECT * FROM tabel WHERE ID=" & iTal

;)
Avatar billede easysoft_studios Nybegynder
24. juli 2002 - 01:56 #3
2 ) variabler kan hedde det man vil. Det med at der tit strå "str" foran visse variabler, er der for at fortælle programmøren, at der er tale om en "string" altså en tekststreng. Man kunne også skrive "int" foran for at fortælle at der er tale om en Integer altså et heltal.
Avatar billede easysoft_studios Nybegynder
24. juli 2002 - 01:57 #4
3 ) prøv ;)
Avatar billede a1a1 Novice
24. juli 2002 - 02:04 #5
du kan heller ikke tvine asp til at opfate din variabel som fx. tekst eller en streng som du kan i andre programmerings sprog (så skal du bruge vb.net)

i vb.net kan du fx. sige
Dim iTal As Integer

det betyder så at "komputeren" afsætter plads i hukommelsen til en integer (tal værdi som fylder 32 bit)
når "alm." asp afsætter plads i hukommelsen afsætter den altid plads til en variant som ikke har noget egentligt limit (kan ikke finde noget dokumentation :( ), men det er ihvert fald mere en 32 bit (som svarer til 4 ASC II tegn (værdi 0 til 255)

;)
Avatar billede a1a1 Novice
24. juli 2002 - 02:07 #6
hvis "programmet" ikke afsætter så meget plads til de enkelte variabler vil det jo så belaste komputeren væsentligt mindre....
Avatar billede a1a1 Novice
24. juli 2002 - 02:15 #7
3 jo du kan lave loops i loops i loops i loops....:)

4 nej, glem det du får ikke noget ordentligt på dansk men jeg kan anbefale Wrox, beginning active server pages 3.0 den er god og med gode brugbare eksempler.
Hvis du ikke gider læse engelsk vil jeg mene at du ikke kan finde noget ordentligt, når du kommer ud over det almindelige....
Hvis du havde tænkt dig en karriere inden for computer brancen så SKAL du kunne læse engelske bøger, de engelsk sprogede bøger udkommer også lang tid før der er nogen der oversætter / skriver nogle på dansk..
Desuden er det ASP jo egentlig bare engelske ord så hvorfor få dem forklaret på dansk????? (det gør kun fovirringen størrere)
Avatar billede canedo Nybegynder
24. juli 2002 - 10:38 #8
her er et sted med MANGE ASP tutorials, - måske noget du kan bruge...

http://4guysfromrolla.aspin.com/home/tutorial?cob=4guysfromrolla
Avatar billede jensb Nybegynder
24. juli 2002 - 21:19 #9
Tak for hjælpen til jeg alle

1.
Det var lige præcis noget i den stil som a1 skrev med
  iTal = cdbl(request.querystring("tal"))
Som jeg tænkte på...altså at man kunne skriv cdbl foran for at lave det til et heltal istedet for.  Det viste sig dog i sidste ende at det ikke var her mit problem lå, men derimod noget så simpelt/dumt som at jeg var kommet til at skrive et forkert variablenavn (sådan går det når man kopiere lidt at scriptet fra en af de andre sider, så passer variabel navnene pludselig ikke).

Så nu fik jeg løst problemet, og jeg kan sikkert alligevel bruge det med cdbl en anden gang.

2.
Ok, tænkte nok at det var ligemeget hvad man skrev

3.
hmmm ok, jeg har prøvet men kan ikke lige få det til at virke. Jeg prøver at oprette et nyt spørgsmål, hvor jeg så kan poste scriptet, så kan det være der er en der kan se hvad jeg gør galt.

4.
Nej jeg har nu ikke planer om en karriere inden for computerbranchen. Det er kun fritidsinteresse, og derfor foretrækker jeg så vidt muligt at bruge bøger på dansk, for jeg ved at jeg sjældent får taget mig sammen til at åbne de engelske...det har jeg rigeligt at på mit studie.  Men det kan da godt være at jeg alligevel vil kigge lidt på Wrox, da jeg også lige har set den anbefalet et andet sted.


pointfordeling :
easysoft : 25
a1 : 50
canedo : 25
Avatar billede easysoft_studios Nybegynder
24. juli 2002 - 21:32 #10
takker for point :)
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
Kurser inden for grundlæggende programmering

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