Avatar billede ugotabe_kidding Nybegynder
16. juli 2003 - 23:28 Der er 14 kommentarer og
1 løsning

SQL fejler når ingenting returneres

Jeg har en asp-side, hvor jeg har 2 forskellige slags queries:

1.
strSQL = "Select * From Corp Where CorpNo = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)

2.
strBoardPeople = "Select * From People Where PeopleNo = " & rs4("PersonNo")
Set rs7 = Conn.Execute(strBoardPeople)

2'eren driller, hvis forespørgslen ikke finder noget resultat. Så fejler siden (error '80020009' Exception occurred. /filename.asp, line 39)
Men bør det ikke være muligt at gøre det på begge måder?
Eller skal man ud i en if-sætning, der går udenom 2. forespørgsel, hvis rs4("PersonNo") er Null?
Det har drillet mig i lang tid - håber Eksperten kan hjælpe?

Mvh
/U.K.
Avatar billede korup Nybegynder
16. juli 2003 - 23:32 #1
Hej
Du kan jo lave en if
if rs4("PersonNo") <> "" Then
strBoardPeople = "Select * From People Where PeopleNo = " & rs4("PersonNo")
Set rs7 = Conn.Execute(strBoardPeople)
End if


Håber det kan bruges.

/korup
Avatar billede ugotabe_kidding Nybegynder
16. juli 2003 - 23:42 #2
Duede ikke :o(
Kan det skyldes at SQL'en har problemer med at identificere de data (eller mangel på samme) der er i rs4("PersonNo").
rs4("PersonNo") er jo resultatet af en anden forespørgsel... Er der evt. en anden måde at komme omkring det på?
Avatar billede ugotabe_kidding Nybegynder
16. juli 2003 - 23:44 #3
De queries der giver mig problemer/fejl, er alle de der bygger på andre queries og hvor ID sættes lig et "rs" (f.eks. rs4("PersonNo"))
Avatar billede korup Nybegynder
16. juli 2003 - 23:49 #4
hvad med.

if not rs4.EOF Then
strBoardPeople = "Select * From People Where PeopleNo = " & rs4("PersonNo")
Set rs7 = Conn.Execute(strBoardPeople)
End if


/korup
Avatar billede new_at_java Nybegynder
16. juli 2003 - 23:49 #5
jeg har oplevet samme problem da jeg connctede til db'en på samme måde som de f.eks viser i tuturialsne på www.html.dk

Jeg skiftede til denne her måde istedet... (kan ikke lige huske forskellen derfor får du det hele)

set cn = server.createobject("adodb.connection")
cnstr = "provider=Microsoft.Jet.OLEDB.4.0;"
cnstr = cnstr & "Data Source= "& server.mappath("db.mdb") & ";"
cn.connectionstring = cnstr
cn.open

set rs = server.createobject("adodb.recordset")
sql = "Select * From People Where PeopleNo = " & rs4("PersonNo")
rs.open sql,cn
Do While Not rs.EOF

... osv

du kan se jeg laver f.eks recodsættet anderledes end dig...
Avatar billede new_at_java Nybegynder
17. juli 2003 - 00:03 #6
så var den der... tusind tak
Avatar billede new_at_java Nybegynder
17. juli 2003 - 00:04 #7
kan jeg ikke lave et eller andet smart, så jeg ikke skal skrive alt det der i frmtiden??
Avatar billede ugotabe_kidding Nybegynder
17. juli 2003 - 00:09 #8
>> new_at_java:
Jeg får en Loop-fejl, når forbindelsen skal lukkes - hvordan gør du det?
Avatar billede korup Nybegynder
17. juli 2003 - 00:17 #9
HAr du husket en "Wend" :)

/korup
Avatar billede korup Nybegynder
17. juli 2003 - 00:20 #10
new_at_java> Du kan jo have det i en include fil så du bare skal include filen, eller du kan lave en metode som retunere det ønskede record set.

/korup
Avatar billede ugotabe_kidding Nybegynder
17. juli 2003 - 00:24 #11
>> korup:
Jeg får tilsyneladende en syntax error:
Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'PeopleNo ='.
Det skyldes jo at jeg springer SQLen over, hvis resultatet er blankt... Det giver mig et NYT problem...
Avatar billede ugotabe_kidding Nybegynder
17. juli 2003 - 00:25 #12
KAn man lave en form for DLookUp på en asp-side, eller kan man kun få fat i data vha. SQL?
Avatar billede soes Nybegynder
17. juli 2003 - 00:53 #13
2 Forslag, ved ikke om de virker, men du kan jo proeve.

1: Sql = "SELECT People.* FROM People, Corp WHERE People.PeopleNo = Corp.CorpNo AND Corp.CorpNo = " & Request.Querystring("id")

2: Sql = "SELECT * FROM People WHERE PeopleNo = (SELECT CorpNo FROM Corp WHERE CorpNo = "& Request.Querystring("id") &")(0)"
Avatar billede ugotabe_kidding Nybegynder
17. juli 2003 - 10:24 #14
>> soes: Jeg har forsøgt mig med dit 2. forslag. Men jeg får en fejl i kommandoen (0) til sidst... Er det den rette syntax?
Avatar billede ugotabe_kidding Nybegynder
17. juli 2003 - 11:35 #15
Har løst problemet - det virker i hvert fald nu:

if not isNull(rs("CorpOwnedBy")) Then
strLookUpOwnedBy = "Select CorpName From Corp Where CorpNo = " & rs("CorpOwnedBy")
Set SqlOwnedByTemp = Conn.Execute(strLookUpOwnedBy)
SqlOwnedBy = SqlOwnedByTemp("CorpName")
else
SqlOwnedBy = "None" 'If CorpOwnedBy-field is empty
end if
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