webForumDet fria alternativet
Logga in / Bli medlem

Flera SQL satser?

ASP

12 svar · 232 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Trådstart#1

Såg nånstans att man kunde ange en speciell sql sats till ett namn t.ex. kossa och sedan hämta infot från just den sql satsen med typ
<%=Kossa("mu")%>
och t.ex
<%=katter("mjau")%>
för att få listningar med en annan sql sträng.. hur gör man det?

Medlem sedan dec. 19995 874 inlägg
#2

Är det detta du menar?

SQLStmt = "Select mu from Kossorna"
Set kossa = Connection.Execute(SQLStmt)

SQLStmt = "Select mjau from Katterna"
Set katter = Connection.Execute(SQLStmt)
Medlem sedan aug. 20011 087 inlägg
#3

Möjligt att det bygger på samma pricip med den jag såg var mer liknande

kossa = Connection.Execute(sql sats databas m.m)

alltså allt nödvändigt i samma typ..
olika sql satser och olika databaser som man sedan tog fram med kossa ;)

Medlem sedan juni 20019 024 inlägg
#4

Va? :q

Medlem sedan aug. 20011 087 inlägg
#5

hehe jag försöker få fram något bra sätt att kunna hämta från olika databaser med flera olika sql satser på något vis och sedan kunna skriva ut just det jag hadde tänkt mig..

Såg nånstans här på webforum att någon använde sig av en kod som innehöll sql sats och databas koppling som man sedan kunnde hämta ut med t.ex. <%=Kossa("antal")%> om man hadde anget att kossa = connection.execute blah blah nånting.. förstår om ni inte förstår, det är helt förståligt! :o)

Medlem sedan juni 20019 024 inlägg
#6

Du kan inte hämta från olika databaser såvida du inte öppnar olika kopplingar till dem.

Och visst kan du använda "kossa" om du vill, men det är knappast särskilt praktiskt. ;)

Som Brimba skrev, Set kossa = Connection.Execute(SQLStmt). Sedan använder du den som kossa("fält")

Medlem sedan dec. 19995 874 inlägg
#7

Givetvis kan du skriva det på en rad...

exempel:

Set kossa = Connection.Execute("Select mu from Kossorna")
Medlem sedan aug. 20011 087 inlägg
#8

Asså när jag tänker efter så va d nog exakt så han skrev.. fick för mig att han hadde med en databas koppling i samma rad.. men d e nog helt fel.. Hur gör jag för att ha olika databas kopplingar till dom olika sql stängarna då?

Medlem sedan aug. 20011 087 inlägg
#9

Skrev som brimba sa men d funka visst inte redigt ihop med min kod :o)

<% 
database = Server.MapPath("members.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& database

Set RecSet = Server.CreateObject("ADODB.Recordset")
Set antalmemb = Connection.Execute("select count(*) as nick from members")
Set senastmemb = Connection.Execute("select top 1 * nick from members order by datum")
RecSet.Open SQL, Connection, 3, 3
%>

får error
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket '* nick'.

/StajlLinks 1.0/top.asp, rad 8

och om jag tar bort senastmemb o bara har en får jag

ADODB.Recordset fel '800a0bb9'

Parametrarna är felaktiga, ligger utanför tillåtet intervall eller skapar en inbördes konflikt.

/StajlLinks 1.0/top.asp, rad 9

Medlem sedan mars 20007 896 inlägg
#10

Det här:

Set RecSet = Server.CreateObject("ADODB.Recordset")
Set antalmemb = Connection.Execute("select count(*) as nick from members")
Set senastmemb = Connection.Execute("select top 1 * nick from members order by datum")
RecSet.Open SQL, Connection, 3, 3

Innebär att du skapar tre recordset's, ett som heter RecSet som du sedan försöker öppna med en tom sträng ( SQL ), plus recordsetsen senastmemb och antalmemb som har data sig.

Så här skulle jag gjort:

Set antalmemb = Connection.Execute("select count(*) as nick from members")
Set senastmemb = Connection.Execute("select top 1 * nick from members order by datum")

Response.Write "Antal medlemmar: " & antalmemb ( "nick" ) & "<br>"
Response.Write "Senaste medlemmen: " & senastmemb ( "nick" ) & "<br>"
...

:)

Medlem sedan aug. 20011 087 inlägg
#11

Hmm det där fattade jag inte alls :O) Eller jag fattar vad du menar men inte hur koden ska se ut :o)

Jag kan ju inte ersätta

Set RecSet = Server.CreateObject("ADODB.Recordset")
Set antalmemb = Connection.Execute("select count(*) as nick from members")
Set senastmemb = Connection.Execute("select top 1 * nick from members order by datum")
RecSet.Open SQL, Connection, 3, 3

Med

Set antalmemb = Connection.Execute("select count(*) as nick from members")
Set senastmemb = Connection.Execute("select top 1 * nick from members order by datum")

eller?

O jag kan inte response.writa ut det sedan jag måste skriva ut det med

<%=Antalmemb("nick")%> och <%=Senastmemb("nick")%>

Medlem sedan dec. 19995 874 inlägg
#12

Prova detta

<% 
                                       database = Server.MapPath("members.mdb")
Set Connection = Server.CreateObject("ADODB.Connection")
                                        Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& database

Set antalmemb = Connection.Execute("select count(*) as nick from members")
                                        Set senastmemb = Connection.Execute("select top 1 * nick from members order by datum")                                        
%>

<%=senastmemb("nick")%>
<%=antalmemb("nick")%>
Medlem sedan aug. 20011 087 inlägg
#13

Jag fick det att funka tillslut! Tack!

389 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
120 ms — hämta statistik (db)
138 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)