Gå til innhold

Anbefalte innlegg

Heisann,

 

Jeg har akkurat fått med meg at jeg må bruke parameter spørring når jeg poster til databasene mine.

 

Har sittet og forsøkt endel og kommet fram til dette:

<%
dim cmd
dim param
set conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeReadWrite
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open "D:\bilder.homeftp.net\db\brukere.mdb"
set cmd=createobject("ADODB.Command")
set cmd.ActiveConnection = conn
cmd.CommandType = 1 
cmd.CommandText = "select * from tbl_Brukere"
call cmd.Parameters.Append(cmd.CreateParameter ("Fornavn",200,1,255,"TEST"))
cmd.Parameters.Append param
cmd.execute
%>

 

Dette feiler uten at jeg helt skjønner hvorfor.

http://bilder.homeftp.net/test/conn_string.asp

 

 

Noen som kan forklare meg litt mer?

Lenke til kommentar
Videoannonse
Annonse
cmd.CommandText = "select * from tbl_Brukere"

call cmd.Parameters.Append(cmd.CreateParameter ("Fornavn",200,1,255,"TEST"))

cmd.Parameters.Append param

cmd.execute

%>[/code]

 

Her lager du et parameter, men du har ikke spesifisert i spørringen hvordan det skal brukes.

I tillegg så prøver du å appende en variabel param med verdi null (eller er det nothing det heter i VB?) til command-objektets Parameters-colletion.

 

Prøv heller:

cmd.CommandText="select * from tbl_Brukere where Fornavn=?" '? er her placeholder for parameteret du Append'er til Parameters-colletion
set param=cmd.CreateParameter("Fornavn",200,1,255,"test") '"Fornavn" teksten blir ikke på noen måte matchet med Fornavn-kolonnen. Her er prinsippet at første ? i spørringen får første parameter du Append'er. Du kunne likegodt byttet ut Fornavn med BlaBlaBla. 
cmd.Parameters.Append param
cmd.Execute

 

En annen ting som ser litt snodig ut er at du ikke har er Recordset-objekt som cmd.Execute kan returnere til.

Lenke til kommentar
En annen ting som ser litt snodig ut er at du ikke har er Recordset-objekt som cmd.Execute kan returnere til.

 

:) Det er det neste jeg skal begynne å se på. Skjønner ikke dette helt enda. Tenkte få til noe som fungere og så studere dette videre etterpå.

 

Takker for hjelpen så langt.

Lenke til kommentar
set param=cmd.CreateParameter("Fornavn",200,1,255,"test") '"Fornavn" teksten blir ikke på noen måte matchet med Fornavn-kolonnen. Her er prinsippet at første ? i spørringen får første parameter du Append'er. Du kunne likegodt byttet ut Fornavn med BlaBlaBla.

 

Om "Fornavn" ikke blir matchet på noen måte, hvor ligger jeg da inn verdien som skal matches med fornavn feltet i databasen. (where Fornavn=?)

Lenke til kommentar

Det første parameteret knyttes mot første ?, det andre parameteret mot andre ? osv.

 

Det er teksten "test" som sendes til spørringen som parameterverdi.

Det som til slutt kjøres på SQL Serveren vil se ca. slik ut.

 

declare @p1 varchar(255)
set @p1='test'
select * from tbl_Brukere where Fornavn=@p1

Lenke til kommentar
Det første parameteret knyttes mot første ?, det andre parameteret mot andre ? osv.

 

Det er teksten "test" som sendes til spørringen som parameterverdi.

Det som til slutt kjøres på SQL Serveren vil se ca. slik ut.

 

declare @p1 varchar(255)
set @p1='test'
select * from tbl_Brukere where Fornavn=@p1

 

Ok. Da kom jeg endel lengre på vei. :)

 

Hvordan det mulig å bruke wildcard i en slik spørring?

 

F.eks. Åpne alle som begynner på P.

Lenke til kommentar
cmd.CommandText="select * from tbl_Brukere where Fornavn like ?"

set param=cmd.CreateParameter("Fornavn",200,1,255,P%")

cmd.Parameters.Append param

set rs=cmd.Execute

 

 

Se endringer i rødt.

 

 

:)

 

Fantastisk. Da har jeg fått til noe som fungerer, og som jeg kan leke videre med. Alt blir så mye enklere da.

 

Takker for all hjelp.

Lenke til kommentar

Innlegg som går på reaksjon på moderering er fjernet. Dette for å unngå at tilbakemeldinger blir spredd rundt på hele forumet, da det gjør det særdeles uoversiktlig for moderatorteamet og forumstyret å oppdage tilbakemeldingen. I tillegg er ikke moderering emnet for denne tråden. Er man uenig i moderering så kan man sende en pm til den aktuelle moderator. Eventuelt p_report.gif moderatoren eller klag moderator inn for forumstyret på e-post [email protected]. Da vil en administrator behandle saken og gi deg en tilbakemelding.

 

Tilbkameldinger som går på det generelle (eksempelvis retningslinjer) kan gjøres i Tilbakemeldinger om forumet. Vi oppfordrer alle til å komme med innspill og tilbakemeldinger, men det må gjøres på riktig måte.

 

Bevisst forsøk på å undergrave en moderators autoritet vil bli slått hardt ned på og brukere frarådes sterkt å gjøre det. Vi håper dere viser forståelse for dette.

 

Dette innlegget skal ikke kommenteres, da det er off-topic. Reaksjon på moderering gjøres eventuelt på pm. Tilbakemelding av generell karakter kan gjøres i Tilbakemeldinger om forumet

Lenke til kommentar
Fantastisk. Da har jeg fått til noe som fungerer, og som jeg kan leke videre med. Alt blir så mye enklere da.

 

Takker for all hjelp.

 

Husk at du alltid må bruke parameteriserte spørringer (som over) når du skal sende input fra brukerens valg til databasen, ellers er du mer utsatt for SQL injections.

Lenke til kommentar
Fantastisk. Da har jeg fått til noe som fungerer, og som jeg kan leke videre med. Alt blir så mye enklere da.

 

Takker for all hjelp.

 

Husk at du alltid må bruke parameteriserte spørringer (som over) når du skal sende input fra brukerens valg til databasen, ellers er du mer utsatt for SQL injections.

 

 

 

:) Det var det som var meningen. Holder på å lære meg dette for å ombygge alle spørringene mine.

Endret av zyklo
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...