Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-07 21:42:36 - Axel Eriksson, i forum access, Tråden har 12 Kommentarer och lästs av 1482 personer

vet att detta är fel men ni förstår nog principen av vad jag vill göra.
<code>
SELECT * FROM produkter WHERE ID = "&Request.Form("product")&" And SELECT * FROM TILLVARKARE WHERE ID = "&Request.Form("producer")&"
</code>


Svara

Sv: SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-07 21:50:08 - Joakim Westin

Du tänker rätt men man uttrycker sig inte riktig så i T-SQL (som språket som Access/SQL Server använder kallas) - Du bär namnge vilka kolumner du vill ta ut,


<code>

SELECT * FROM produkter p, ID.
SELECT produkter.ID, tillverkare.ID
FROM produkter INNER JOIN tillverkare
ON produkter.ID = tillverkare.ID

</code>


Svara

Sv:SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-07 22:00:55 - Axel Eriksson

men vad står p:na för ex. p,ID
sen vart skall jag stoppa in <code>"&Request.Form("product")&"</code> och
<code>"&Request.Form("producer")&"
</code>?


Svara

Sv: SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-07 22:11:28 - Per Karlsson

Gör så här:
<CODE>
SELECT P.*, T.*
FROM produkter P, tillverkare t
WHERE p.ID = "&Request.Form("product")&"
AND t.ID = "&Request.Form("producer")&"
AND p.TillverkarId = t.Id
</CODE>

P och T är alias vars enda syfte är att man ska slippa skriva ut hela tabellnamnen mer än en gång.

/Pelle


Svara

Sv:SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-07 22:27:55 - Axel Eriksson

Kompileringsfel i Microsoft VBScript (0x800A0409)
Oavslutad strängkonstant
/webshop/default.asp, line 136, column 25
strSQL = "SELECT P.*, T.*

min kod
<code>
<%
Set objCon = openCon()
strSQL = "SELECT P.*, T.*
FROM tblProdukter P, tblVarumarke t
WHERE p.ID = "&Request.Form("product")&"
AND t.ID = "&Request.Form("producer")&"
AND p.TillverkarId = t.Id"
Set objRs = objCon.Execute(strSQL

Do Until objRs.Eof
' skriver ut produkt namnet
Response.Write ""&objRs("pNamn")&""
objRs.MoveNext
Loop
' Städar upp blad objekten
Set objRs = Nothing
closeCon(objCon)
%>
</code>


Svara

Sv: SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-07 22:29:49 - Per Karlsson

Slå ihop hela sql-satsen till en rad och sätt en slutparentes efter objCon.Execute(strSQL!

/Pelle


Svara

Sv:SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-07 23:08:17 - Axel Eriksson

Det har inte angetts något värde för en eller flera nödvändiga parametrar.
/webshop/default.asp, line 137

<code>
<%
Set objCon = openCon()
strSQL = "SELECT P.*, T.* FROM tblProdukter P, tblVarumarke t WHERE p.tID = "&Request.Form("product")&" AND t.tID = "&Request.Form("producer")&" AND p.TillverkarId = t.Id"
Set objRs = objCon.Execute(strSQL)

Do Until objRs.Eof
' skriver ut produkt namnet
Response.Write ""&objRs("pNamn")&""
objRs.MoveNext
Loop
' Städar upp blad objekten
Set objRs = Nothing
closeCon(objCon)
%>
</code>
vad är fel nu då för produkt idet heter pId och tillverknings idet heter tId?


Svara

Sv: SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-07 23:16:47 - Per Karlsson

<CODE>
strSQL = "SELECT P.*, T.* FROM tblProdukter P, tblVarumarke t WHERE p.pID = "&Request.Form("product")&" AND t.tID = "&Request.Form("producer")&" AND p.tId = t.tId"
</CODE>

Fixat på två ställen. P.pId jämförs med Request.Form("product") och join-villkoret mellan tabellerna borde bli p.tId = t.tId.

Om det blir mer problem med sql-satsen så kan du väl skriva ner alla fältnamnen i tabellerna, så slipper jag gissa.

/Pelle


Svara

Sv:SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-07 23:21:10 - Per Karlsson

Förresten, om det bara är pNamn du är ute efter så ska du istället skriva så här:

<CODE>
strSQL = "SELECT P.pNamn FROM tblProdukter P, tblVarumarke t WHERE p.pID = "&Request.Form("product")&" AND t.tID = "&Request.Form("producer")&" AND p.tId = t.tId"
</CODE>

Det är onödigt och fult att returnera samtliga kolumner genom att skriva * om man inte behöver. Det är oftast bättre att ange de kolumner som man är ute efter.

Har du förresten angett alla nödvändiga parametrar för databasuppkopplingen? I koden som du postade finns inga sådana parametrar.

/Pelle


Svara

Sv: SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-08 14:45:18 - Axel Eriksson

nä, tyvärr det verkar inte fungera, har en databas koppling och jag har testat att den funkar men dev svarar fortfarande att värde saknas för en eller fler nödvändiga parametrar...

hmm, kan man inte göra det på nått enklare sätt utan att blanda in enn massa p och t?


Svara

Sv:SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-08 23:48:17 - Per Karlsson

Om du inte vill använda alias (p och t) så byt bara ut dem till rätt tabellnamn.

Testa att köra enklast tänkbara sql-fråga och se om den fungerar. Bygg sedan på den med joinar mm. På så vis är det enklare att spåra felet.

/Pelle


Svara

Sv:SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-09 11:42:34 - Åsa Holmgren

Om SQL-uttrycket är giltigt eller inte beror ju på vad användaren skriver i formuläret. Infoga en "Response.Write strSQL" på raden efter "strSQL = ...", kopiera och klistra in i frågeverktyget i Access så får du se var det går snett.

Om du bara behöver fältet pNamn behöver du inte blanda in tabellen tblVarumarke över huvud taget vad jag kan se...

<code>
strSQL = "SELECT pNamn FROM tblProdukter WHERE pID = " & Request.Form("product") _
& " AND TillverkarId = " & Request.Form("producer")
</code>

Jag hittade den här länken i en tråd längre ner på sidan där Jesper Holmberg talar om faran med user input och dynamisk SQL:
http://msdn.microsoft.com/msdnmag/issues/04/09/SQLInjection/default.aspx


Svara

Sv:SQL enkel fråga, matcha värden i två tabeller?

Postades av 2004-12-09 13:15:41 - Åsa Furubom

Alias namn använder man bara för att slippa skriva ut långa tabellnamn i sql-frågorna. Det motsvarar samma sak som om du skulle skrivit tabellnamnet.fältet.

Angående dynamiska sql frågor så hänvisar jag till mitt tidigare inlägg i
http://www.pellesoft.se/communicate/forum/view.aspx?msgid=161465&forumid=21&sum=0

Mitt tips är att först skriva frågan i frågeverktyget med hårdkodade where villkor. Sen klistrar man in hela frågan i vb-koden och byter ut de hårdkodade värdena med värdena från urvalsformuläret.

/Åsa


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 770
27 960
271 761
534
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies