/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
"Select * from design where kategori = <st~
Fra : søren


Dato : 21-05-02 13:49

Heysa!
Jeg har et lille problem med at hente mine informationer fra min database,
og jeg tror problemet ligger i min SQL query...
Er der noget i vejen med denne query:
"Select * from design where kategori = <streng>"
Er der nogen bestemt måde en løkke med en sådan query skal afsluttes?
Indtilnu har jeg bare brugt Loop While Not RS.EOF som på www.html.dk
Hvad gør jeg galt?

Thx!

 
 
Jørn Andersen (21-05-2002)
Kommentar
Fra : Jørn Andersen


Dato : 21-05-02 14:18

On 21 May 2002 12:49:08 GMT, "søren" <soren@andersen.as> wrote:

>Jeg har et lille problem med at hente mine informationer fra min database

Hvad er problemet? Får du en fejlmeddelelse eller bare ikke noget
"output"?

>og jeg tror problemet ligger i min SQL query...

Hvordan ser din SQL-streng ud, når du udskriver den:
Indsæt midlertidigt disse to linier lige før du Execute'r:

Response.Write strSql
Response.End

>Er der noget i vejen med denne query:
>"Select * from design where kategori = <streng>"
>Er der nogen bestemt måde en løkke med en sådan query skal afsluttes?

Hvis strengen hedder strStreng:
strSql = "SELECT * FROM design WHERE kategori = '" & strStreng & "'"

>Indtilnu har jeg bare brugt Loop While Not RS.EOF som på www.html.dk

Hvis du har testet, at RecordSet ikke er tomt, inden du går ind i
loopen er det OK. Ellers skal du bytte rundt:

Do While Not RS.EOF
'...
Loop

>Hvad gør jeg galt?

Gør du noget galt :)


Good luck,
Jørn

--
Jørn Andersen,
Brønshøj

søren (21-05-2002)
Kommentar
Fra : søren


Dato : 21-05-02 14:47

Jørn Andersen <jorn@jorna.dk> wrote in
news:qthkeu8ge4m31ic06c64sqhp08cacds08f@4ax.com:

> On 21 May 2002 12:49:08 GMT, "søren" <soren@andersen.as> wrote:
>
>>Jeg har et lille problem med at hente mine informationer fra min
>>database
>
> Hvad er problemet? Får du en fejlmeddelelse eller bare ikke noget
> "output"?
Jeg får en siden kan ikke vises
>>og jeg tror problemet ligger i min SQL query...
> Hvordan ser din SQL-streng ud, når du udskriver den:
> Indsæt midlertidigt disse to linier lige før du Execute'r:
> Response.Write strSql
> Response.End
I og med jeg får en siden kan ikke vises, kan jeg lige teste det... :)

>>Er der noget i vejen med denne query:
>>"Select * from design where kategori = <streng>"
>>Er der nogen bestemt måde en løkke med en sådan query skal afsluttes
> Hvis strengen hedder strStreng:
> strSql = "SELECT * FROM design WHERE kategori = '" & strStreng & "'"
Er det virkeligt rigtigt det du skriver? For mig at se, er der så ikke
en " for meget? (Eller for lidt... :)
>>Indtilnu har jeg bare brugt Loop While Not RS.EOF som på www.html.dk
> Hvis du har testet, at RecordSet ikke er tomt, inden du går ind i
> loopen er det OK.
Det behøves jeg ikke... Jeg _ved_ der er noget... :)
Det jeg mente var faktisk, at i og med jeg laver sådan en fætter her for
hver kategori jeg har, og indsætter noget HTML imellem dem, så er det
ikke alle record setsne jeg får med, (de har ikke alle samme kategori)
og så rammer jeg måske ikke EOF?

Thx! Jeg prøver lige med den streng du foreslog... :)

- Søren

Jørn Andersen (21-05-2002)
Kommentar
Fra : Jørn Andersen


Dato : 21-05-02 15:09

On 21 May 2002 13:46:46 GMT, "søren" <soren@andersen.as> wrote:

>> Hvad er problemet? Får du en fejlmeddelelse eller bare ikke noget
>> "output"?
>Jeg får en siden kan ikke vises

Weird ... Prøv midlertidigt at indsætte:

Response.Write "Hej!<br>"
Response.End

øverst på siden.
<snip>

>> Hvis strengen hedder strStreng:
>> strSql = "SELECT * FROM design WHERE kategori = '" & strStreng & "'"
>Er det virkeligt rigtigt det du skriver? For mig at se, er der så ikke
>en " for meget? (Eller for lidt... :)

Hvorfor det?
Den samlede strengen består af 3 dele: to strenge + en variabel (der
indeholder en streng).

Efter lighedstegnet startes første streng med:
"SEL ...
- og slutter med
.... gori = '"

Anden del er den variable _strStreng_ - de to "limes sammen" med _&_

Tredje del er en streng: "'" - som "limes" til resten med _&_

Hvis variablen strStreng fx indeholder strengen "hest", bliver
resultatet til:
strSql = "SELECT * FROM design WHERE kategori = 'hest'"

De to enkelt-apostroffer om 'hest' skal være der, når vi opererer med
tekst-felter (men ikke ved tal-felter).

>>>Indtilnu har jeg bare brugt Loop While Not RS.EOF som på www.html.dk
>> Hvis du har testet, at RecordSet ikke er tomt, inden du går ind i
>> loopen er det OK.
>Det behøves jeg ikke... Jeg _ved_ der er noget... :)

For alle værdier af strStreng? Også i fremtiden?
Tjah, det er jo dit valg ...

>Det jeg mente var faktisk, at i og med jeg laver sådan en fætter her for
>hver kategori jeg har, og indsætter noget HTML imellem dem, så er det
>ikke alle record setsne jeg får med, (de har ikke alle samme kategori)
>og så rammer jeg måske ikke EOF?

EOF refererer ikke til databasen, men er en egenskab ved det
RecordSet, du trækker ud med SQL'en.


Good luck,
Jørn

--
Jørn Andersen,
Brønshøj

søren (21-05-2002)
Kommentar
Fra : søren


Dato : 21-05-02 14:50

Jørn Andersen <jorn@jorna.dk> wrote in
news:qthkeu8ge4m31ic06c64sqhp08cacds08f@4ax.com:

> On 21 May 2002 12:49:08 GMT, "søren" <soren@andersen.as> wrote:
>
>>Jeg har et lille problem med at hente mine informationer fra min
database
> Hvad er problemet? Får du en fejlmeddelelse eller bare ikke noget
> "output"?
Jeg får en siden kan ikke vises... :(

>>og jeg tror problemet ligger i min SQL query...
>
> Hvordan ser din SQL-streng ud, når du udskriver den:
> Indsæt midlertidigt disse to linier lige før du Execute'r:
>
> Response.Write strSql
> Response.End

det kan jeg desværre ikke, idet siden ikke kan vises... :)


>>Er der noget i vejen med denne query:
>>"Select * from design where kategori = <streng>"
>>Er der nogen bestemt måde en løkke med en sådan query skal afsluttes?
>
> Hvis strengen hedder strStreng:
> strSql = "SELECT * FROM design WHERE kategori = '" & strStreng & "'"
Jeg prøver den lige, men er der ikke et forkert antal " og ' ?

Thx!

Søren

P.s der gik et eller andet galt, da jeg forsøgte at poste mit svar før,
så jeg håber ikke at det her bliver post nummer 2... :)
Soz...

P.p.s Kan du anbefale en god newsreader? :P


Jørn Andersen (21-05-2002)
Kommentar
Fra : Jørn Andersen


Dato : 21-05-02 15:12

On 21 May 2002 13:49:39 GMT, "søren" <soren@andersen.as> wrote:

>P.s der gik et eller andet galt, da jeg forsøgte at poste mit svar før,
>så jeg håber ikke at det her bliver post nummer 2... :)
>Soz...

Shit happens :)

>P.p.s Kan du anbefale en god newsreader? :P

Agent er min foretrukne.
Når jeg ind imellem har prøvet andre, har de ikke været så
overbevisende, at jeg har orket sætte mig mere grundigt ind i dem ...

Mvh. Jørn

--
Jørn Andersen,
Brønshøj

søren (21-05-2002)
Kommentar
Fra : søren


Dato : 21-05-02 15:05

> Hvis strengen hedder strStreng:
> strSql = "SELECT * FROM design WHERE kategori = '" & strStreng & "'"

Oki.. nu har jeg afprøvet det her... Og nu sker der noget! Det sker dog ud
til at Databasen er tom, ved min specifikke kategori, og det ved jeg
tilfældigvis (det er mig der har lavet den... :) ikke passer...!
Nuvel, Jeg kan nu (endeligt!) indse at det du skrev til mig må være
rigtigt. (Med hensyn til " og ') men i og med det bliver tolket som værende
et tomt rs, så er der et eller andet galt.. nu skal jeg bare regne ud hvad!
:)
Anyway, kunne det være fordi jeg har skrevet kategorierne med stort?
F.eks. Pininferina og ikke pininferina? (Jeg skriver naturligvis præcis det
samme i queryen som jeg gør i dbasen...)
Eller er det noget helt andet? Og hvilke tal bliver trukket i næste omgang
lotto?

Anyway, jeg ville være meget taknemmelig, hvis du havde et tip...

Jørn Andersen (21-05-2002)
Kommentar
Fra : Jørn Andersen


Dato : 21-05-02 15:52

On 21 May 2002 14:05:02 GMT, "søren" <soren@andersen.as> wrote:

Hej Søren,

>> Hvis strengen hedder strStreng:
>> strSql = "SELECT * FROM design WHERE kategori = '" & strStreng & "'"
>
>Oki.. nu har jeg afprøvet det her... Og nu sker der noget!

Du mener, der kommer ikke flere fejlmeddelelser :) ?

> Det sker dog ud
>til at Databasen er tom, ved min specifikke kategori, og det ved jeg
>tilfældigvis (det er mig der har lavet den... :) ikke passer...!

Hvad sker der, hvis du helt dropper din WHERE-klausul?
strSql = "SELECT * FROM design"

Når man har det problem, at der ikke kommer noget output, er den
bedste metode oftest at "forsimple" (fjerne men'er og hvis'er), indtil
der kommer et output. Herefter kan man så gøre det mere komplekst,
indtil man fanger problemet. Ellers er det rent gætteri.

Prøv dog også at indsætte feltnavne i stedet for "*".
Det gør koden mere gennemskuelig + du nøjes med at hente de data, du
rent faktisk skal bruge:

strSql = "SELECT felt1, felt2, felt3 FROM design"

- så er det nemmere at se forbindelsen til dit "udtræk":
varFelt1 = rs("felt1")
varFelt2 = rs("felt2")

>Anyway, kunne det være fordi jeg har skrevet kategorierne med stort?
>F.eks. Pininferina og ikke pininferina? (Jeg skriver naturligvis præcis det
>samme i queryen som jeg gør i dbasen...)

Så burde det ikke være noget problem.

>Eller er det noget helt andet? Og hvilke tal bliver trukket i næste omgang
>lotto?

3 - 7 - 17 - 18 - 19

:)

Good luck,
Jørn

--
Jørn Andersen,
Brønshøj

søren (21-05-2002)
Kommentar
Fra : søren


Dato : 21-05-02 16:45

Weee! Nu sker der etwas! :=)
Men ikke helt det jeg gerne vil have der til at ske... :)
Efter de to første stumper ASP, med SQL kald, så får jeg (igen) en siden
kan ikke vises ved nummer 3! Og det er ikke bare fordi min kode er skod,
for den er nøjagtigt ens med den ovenover, bortset fra hvilken kategori der
skal ledes efter...!
Any thoughts? :)


Jørn Andersen (21-05-2002)
Kommentar
Fra : Jørn Andersen


Dato : 21-05-02 16:59

On 21 May 2002 15:45:22 GMT, "søren" <soren@andersen.as> wrote:

>Weee! Nu sker der etwas! :=)

Øh - hvad har du gjort?

<snip>

>Any thoughts? :)

Ikke før du fortæller, hvad du gør :)


Mvh. Jørn

--
Jørn Andersen,
Brønshøj

soren@andersen.as (23-05-2002)
Kommentar
Fra : soren@andersen.as


Dato : 23-05-02 14:14

>Øh - hvad har du gjort?

Istedet for at skrive:

strSQL = "SELECT * FROM Design WHERE kategori='" & Pininferina & "'"
skrev jeg:
strSQL = "SELECT * FROM Design WHERE kategori= 'Pininferina'"
Simpelthen... :=)

Derefter havde jeg så følgende kode:

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("lgbeslag_database.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "SELECT billedsti,informationer,kategori FROM Design WHERE
kategori='Pininferina'"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

' Gennemløb Recordset (rs) med en løkke

Do While Not rs.EOF

' Løkken der udskriver det hele...'
'Dim strInformationer

strInformationer = rs("informationer")
Response.Write ("<IMG SRC='")
Response.Write rs("billedsti")
Response.Write ("' align=""CENTER"" valign=""CENTER"" border=""0""
onclick='printbillede(this,""")
Response.Write rs("billedsti")
Response.Write ("""")
Response.Write (",")
Response.Write ("""")
Response.Write strInformationer
Response.Write ("""")
Response.Write (");' style=""cursor:hand;"">")
Response.Write ("<span class=""picturetext"" align=""CENTER""
valign=""CENTER""><br>")
Response.Write ("<P>")
Response.Write strInformationer
Response.Write ("</P>")
Response.Write ("</SPAN>")
Response.Write ("<HR SIZE='1' NOSHADE>")

' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
<A NAME="carlo"></A>
<form>
<select>
onChange="window.open(this.options[this.selectedIndex].value,'_self')">
<option SELECTED>Vælg en designer</option>
<option value="designbot.asp#Pininfarina">Pininfarina</option>
<option value="designbot.asp#carlo">Carlo Bartoli</option>
<option value="designbot.asp#colani">Colani</option>
<OPTION VALUE="designbot.asp#franco">Franco Guanziroli</OPTION>
<option value="designbot.asp#gianni">Gianni Pareschi</option>
<OPTION value="designbot.asp#giorgio">Giorgio Raimondi</OPTION>
<OPTION VALUE="designbot.asp#mauro">Mauro Carlesi</OPTION>
<OPTION VALUE="designbot.asp#paolo">Paolo Nava</OPTION>
<OPTION VALUE="designbot.asp#src">S.&R.C.</OPTION>
</select>
</form>

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("lgbeslag_database.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select * from design where kategori = 'CarloBartoli'"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

' Gennemløb Recordset (rs) med en løkke
Do

' Løkken der udskriver det hele...'
Dim strInformationer
strInformationer = rs("informationer")
Response.Write ("<IMG SRC='")
Response.Write rs("billedsti")
Response.Write ("' align=""CENTER"" valign=""CENTER"" border=""0""
onclick='printbillede(this,""")
Response.Write rs("billedsti")
Response.Write ("""")
Response.Write (",")
Response.Write ("""")
Response.Write strInformationer
Response.Write ("""")
Response.Write (");' style=""cursor:hand;"">")
Response.Write ("<span class=""picturetext"" align=""CENTER""
valign=""CENTER""><br>")
Response.Write ("<P>")
Response.Write strInformationer
Response.Write ("</P>")
Response.Write ("</SPAN>")
Response.Write ("<HR SIZE='1' NOSHADE>")

' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>






<form>
<select>
onChange="window.open(this.options[this.selectedIndex].value,'_self')">
<option selected>Vælg en designer</option>
<option value="designbot.asp#Pininfarina">Pininfarina</option>
<option value="designbot.asp#carlo">Carlo Bartoli</option>
<option value="designbot.asp#colani">Colani</option>
<OPTION VALUE="designbot.asp#franco">Franco Guanziroli</OPTION>
<option value="designbot.asp#gianni">Gianni Pareschi</option>
<OPTION value="designbot.asp#giorgio">Giorgio Raimondi</OPTION>
<OPTION VALUE="designbot.asp#mauro">Mauro Carlesi</OPTION>
<OPTION VALUE="designbot.asp#paolo">Paolo Nava</OPTION>
<OPTION VALUE="designbot.asp#src">S.&R.C.</OPTION>
</select>
</form>

hvis jeg nu sætter endnu et dbase kald ind, (nøjagtigt det samme som
ovenover, bare hvor der står noget andet i kategori = 'xxx'")
så går den helt amok, med siden kan ikke vises... :(

Er det en fejl i Access, eller er jeg bare dum?


Jørn Andersen (23-05-2002)
Kommentar
Fra : Jørn Andersen


Dato : 23-05-02 21:53

On Thu, 23 May 2002 15:13:48 +0200, soren@andersen.as wrote:

>>Øh - hvad har du gjort?
>
>Istedet for at skrive:
>
>strSQL = "SELECT * FROM Design WHERE kategori='" & Pininferina & "'"
>skrev jeg:
>strSQL = "SELECT * FROM Design WHERE kategori= 'Pininferina'"

Det første tilfælde skal bruges, hvis du har en variabel, der hedder
Pininferina, og som så kan indeholde en eller anden værdi.
Det andet tilfælde er *værdien* Pininferina.

Normalt vil man nok mest se noget i retning af:
WHERE kategori='" & strKategori & "'"
- hvor strKategori så indeholder en eller anden værdi (fx
Pininferina).

<snip>

Husk også at lukke og slukke rs:
rs.Close
Set rs = Nothing

>' Luk databaseforbindelse
>Conn.Close
>Set Conn = Nothing

Men der er ingen grund til at lukke forbindelsen, når du skal bruge
den igen lige efter:
<snip>

>Set Conn = Server.CreateObject("ADODB.Connection")
>DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
>DSN = DSN & "DBQ=" & Server.MapPath("lgbeslag_database.mdb")
>Conn.Open DSN

<snip>

>' Gennemløb Recordset (rs) med en løkke
>Do

Hvad sker der her, hvis recordsettet er tomt?

<snip>
>Loop While Not rs.EOF

Bedre at bytte rundt:
Do While Not rs.EOF
....
Loop
<snip>

>hvis jeg nu sætter endnu et dbase kald ind, (nøjagtigt det samme som
>ovenover, bare hvor der står noget andet i kategori = 'xxx'")
>så går den helt amok, med siden kan ikke vises... :(

"så går den helt amok" har jeg svært ved at tolke :)
Umiddelbart kan jeg ikke se nogen fejl, men jeg har også lidt svært at
gennemskue, hvad dine mange (ens) formularer laver.

Men en metode, så du kan komme videre:
Vi starter med, at du har lavet den ny SQL-streng.
Prøv at udskrive den, inden du execute'r, så du kan se, at den er
korrekt:
Response.Write strSQL
Response.End

Hvis det ser OK ud, så prøv at teste, om dit recordset er tomt:
If rs.EOF Then
Response.Write "rs er tomt"
Else
Response.Write "rs er ikke tomt"
End If
Response.End

Hvis det går godt burde resten også virke.

>Er det en fejl i Access, eller er jeg bare dum?

Der findes også mellem-varianter :)


Good luck

--
Jørn Andersen,
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste