webForumDet fria alternativet

Hjälp! SQL-sats

11 svar · 318 visningar · startad av OveRRidE

OveRRidEMedlem sedan feb. 200112 078 inlägg
#1

Vad är det för fel på detta?

strQuot = Chr(39)
getArb = "SELECT * FROM arbeten, atgarder WHERE arbeten.id = " & Request.QueryString("id") & " AND atgarder.id2 = " & Request.QueryString("id") & " "

RecSet.Open getArb, Connect, adOpenStatic, adLockOptimistic

När jag får följande felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/jobb.asp, line 16

Tacksam för snabbt svar!

------------------
*Notepad.exe for president*

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Vilken datatyp har kolumnerna

arbeten.id och atgarder.id2 ?

Hur ser sqlfrågan ut om du skriver ut den med response.write?

------------------
essentitia preter non sans multiplicandum

OveRRidEMedlem sedan feb. 200112 078 inlägg
#3

arbeten.id är primärnyckel i "arbeten".
atgarder.id2 är en siffra som är samma som id. identifierare eller vad man nu vill kalla den, för att knyta mellan tabellerna.

datatypen är id = primärnyckel och id2 = text..

------------------
*Notepad.exe for president*

OveRRidEMedlem sedan feb. 200112 078 inlägg
#4

False står det.

------------------
*Notepad.exe for president*

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Om kolumnerna är av typen text så får du skriva så här i stället:


getArb = "SELECT * FROM arbeten, atgarder WHERE arbeten.id = '" & Request.QueryString("id") & "' AND atgarder.id2 = '" & Request.QueryString("id") & "'"

------------------
essentitia preter non sans multiplicandum

OveRRidEMedlem sedan feb. 200112 078 inlägg
#6

och skillanden är?

jag ser ett ' mer bara.. gör det så stor skillnad?

------------------
*Notepad.exe for president*

[Redigerat av OveRRidE den 06 jun 2001]

OveRRidEMedlem sedan feb. 200112 078 inlägg
#7

fortfarande likadant

getArb = "SELECT * FROM arbeten, atgarder WHERE arbeten.id = '" & Request.QueryString("id") & "' AND atgarder.id2 = '" & Request.QueryString("id") & "'"

------------------
*Notepad.exe for president*

LarsGMedlem sedan dec. 200012 464 inlägg
#8

Ett? Jag har lagt till 4 stycken. Varje sökvärde omges av '' om man jämför med en kolumn av typen text.

Den sträng du får efter att ha gjort konkateneringen borde se ut som

SELECT * FROM arbeten, atgarder WHERE arbeten.id = '4711' AND atgarder.id2 = '4711'

(När jag frågade hur strängen ser ut så menade jag att du skulle skriva ut variabeln getArb.)

------------------
essentitia preter non sans multiplicandum

OveRRidEMedlem sedan feb. 200112 078 inlägg
#9

arbeten.id = räknare (primärnyckel)
atgarder.id2 = text

------------------
*Notepad.exe for president*

OveRRidEMedlem sedan feb. 200112 078 inlägg
#10

SELECT * FROM arbeten, atgarder WHERE arbeten.id = '54' AND atgarder.id2 = '54'

------------------
*Notepad.exe for president*

LarsGMedlem sedan dec. 200012 464 inlägg
#11

Alltså, id är numeriskt och id2 är av typen text? I så fall:

getArb = "SELECT * FROM arbeten, atgarder WHERE arbeten.id = " & Request.QueryString("id") & " AND atgarder.id2 = '" & Request.QueryString("id") & "'"

Om det är en räknare så skall det inte vara några ' alls.

Egentligen borde du väl ha samma datatyp på id2 som det är för id om du vill kunna jämföra dessa.

------------------
essentitia preter non sans multiplicandum

OveRRidEMedlem sedan feb. 200112 078 inlägg
#12

Nu funkar det! Tack!

Du får rabatt på nån pryl hos oss! :e

------------------
*Notepad.exe for president*

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)