webForumDet fria alternativet

GetRows() fel med MySQL

ASP

9 svar · 260 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Frågan#1

Följande felmeddelande dyker upp:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Driver does not support this parameter

...när jag försöker göra följande:

			SQL = "SELECT * FROM gb" & Request.QueryString("gb") & ""
			Set rsGB = Server.CreateObject("ADODB.RecordSet")
			rsGB.Open SQL, objConn, 0, 1, 1

			'Lägger resultatet i en array
			[b]arrGB = rsGB.GetRows()[/b] <<-- raden som orsakar felet.

Jag hade aldrig några problem med att köra getrows() när jag använda Access, men nu när jag bytt till MySQL så dyker alla möjliga fel som jag aldrig sett förut upp.

------------------
// Skarre

Medlem sedan juni 20019 024 inlägg
#2
[b]Set rsGB = objConn.Execute(SQL)[/b]

'Lägger resultatet i en array
arrGB = rsGB.GetRows() <<-- raden som orsakar felet.

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan apr. 20012 427 inlägg
#3

Ytterst pinsamt :r

------------------
// Skarre

Medlem sedan apr. 20012 427 inlägg
#4

Föresten, vad menar du? Ville du bara påpeka att jag kunde hämta posterna utan att skapa ett RecordSet-objekt? Problemet är ju att jag får ett felmeddelande när jag försöker lägga posterna i en array.

------------------
// Skarre

Medlem sedan feb. 20012 412 inlägg
#5
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "din_connection"

SQL = "SELECT * FROM gb [b] WHERE field = " & Request.QueryString("gb") [/b]

arrGB = objConn.Execute(SQL).GetRows()

det markerade får du döpa till det fältet du vill jämföra med. Du får även fixa till connection-strängen.

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

[Redigerat av jorgen den 30 dec 2001]

Medlem sedan apr. 20012 427 inlägg
#6

Jag förstår inte riktigt skillnaden. Det är ju bara ett annat sätt att göra samma sak på. Jag har aldrig haft problem med min metod tidigare.

// Skarre

[Redigerat av Skarre den 30 dec 2001]

Medlem sedan feb. 20012 412 inlägg
#7

Du gör allt på en gång. Men det var nog inte det som var beskymmret utan att du skapade 2 recset med samma namn, samt att du hade grova syntaxfel i din SQL-fråga.

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan feb. 20012 412 inlägg
#8
SQL = "SELECT * FROM gb" & Request.QueryString("gb") & ""

Det fattas ett fält att jämföra med i SQL-frågan.

Set rsGB = Server.CreateObject("ADODB.RecordSet")

Ett recset skapas, pace tillägger:

Set rsGB = objConn.Execute(SQL)

vilket skapar ytterliggare ett med samma namn.

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan apr. 20012 427 inlägg
#9

På ettan säger jag: jag ska inte jämföra med någonting, jag ska ha allt från tabellen gbX (där X är värdet i querystringen "gb"), och på tvåan säger jag: jag skapar självklart inte två recordset.

------------------
// Skarre

Medlem sedan juni 20019 024 inlägg
#10

Problemet är ju att jag får ett felmeddelande när jag försöker lägga posterna i en array.

rsGB.Open SQL, objConn, 0, 1, 1 öppnar den i ett läge som enbart tillåter läsning i en post (är inte riktigt säker där bara). Den rätta cursorn skulle i så fall vara 3, 3, 1.

Men eftersom det är meningslöst att skapa ett recordset innan, så kan man ju lika gärna göra det med .Execute metoden (Set rs = conn.Execute(SQL))

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

[Redigerat av Pace den 30 dec 2001]

257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)