Avatar billede maddog_em Nybegynder
06. maj 2011 - 07:31 Der er 4 kommentarer og
1 løsning

Fejl i SQL connections

Hej

jeg har brugt følgende script til at forbinde til forskellige databaser, og nogle gange fejler den - hvorfor?


<%
Set Conn = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("/db/members.mdb")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};"&DBPath
Set rs = Server.CreateObject("ADODB.Recordset")

strSQL = "select * from tblMembers WHERE Id= "& request.form("u_UpdateMember") &" "

rs.Open strSQL, cn
%>


Der er linjen "re.Open strSQL, cn" der giver fejl.
Jeg får denne meddelse:
ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

det sjove er, at jeg bruger nøjagtig samme kald andre steder på web sitet, er der en der kan se fejlen?
Avatar billede softspot Forsker
06. maj 2011 - 09:09 #1
Der er flere ting som får alarmklokkerne til at ringe ved den kode du viser. Dels er din SQL-sætning åben for SQL-injections i og med du ukritisk benytter en request.form-variabel i din SQL--sætning, dels at du åbner en connection (conn) og forsøger at åbne et recordset med en anden connection-variabel (cn).

Dit umiddelbare problem er givetvis at du ikke åbner recordsettet med den korrekte connectionvariabel, men SQL-injections kan på sigt blive et stort mareridt for dig, så den del vil jeg da også anbefale at du finder en løsning på. Der findes mange artikler om dette emne. Du kan evt. tage udgangspunkt i min egen her på eksperten http://www.eksperten.dk/guide/1250
Avatar billede maddog_em Nybegynder
06. juni 2011 - 07:27 #2
lukket
Avatar billede softspot Forsker
06. juni 2011 - 08:25 #3
Det var da en "interessant" måde at afslutte en tråd på!?

Hvad fandt du ud af? Hjalp det jeg foreslog?

Det er jo ikke let for andre at bruge denne tråd til noget, hvis du ikke får afsluttet tråden på en ordentlig måde, dvs. afklaring af hvad der løste problemet. Desuden er det temmelig uhøfligt ikke at takke for den tid folk bruger på dine problemer!
Avatar billede maddog_em Nybegynder
06. juni 2011 - 09:32 #4
Hej Softspot

jeg er desværre ikke kommet længere med denne opgave, og Eksperten kommer jo med på mindelser om at man skal lukke de spørgsmål der er ved at være for gamle.

håber på at komme videre i Pinsen, og så skal jeg nok komme med en update
Avatar billede softspot Forsker
06. juni 2011 - 09:54 #5
Det er som sådan fint nok at lukke et spørgsmål, men der bør følge en forklaring med. I øvrigt er det måske lidt forhastet at lukke spørgsmålet, hvis du forventer at arbejde videre med det i Pinsen... :-)

Desuden er den påmindelse man får vel blot et forsøg på at få folk, der glemmer at lukke allerede besvarede spørgsmål, til at lukke disse og ikke for at få folk til at lukke spørgsmål, som stadig er ubesvarede.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester