GetRows() fel med MySQL

ASP

9 svar · 280 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Trådstart#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.

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.
Medlem sedan apr. 20012 427 inlägg
#3

Ytterst pinsamt :r

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.

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.

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 :)

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 :)

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.

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))

258 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)