zyklo Skrevet 27. september 2008 Del Skrevet 27. september 2008 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
kaffenils Skrevet 28. september 2008 Del Skrevet 28. september 2008 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
zyklo Skrevet 28. september 2008 Forfatter Del Skrevet 28. september 2008 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
zyklo Skrevet 30. september 2008 Forfatter Del Skrevet 30. september 2008 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
kaffenils Skrevet 1. oktober 2008 Del Skrevet 1. oktober 2008 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
zyklo Skrevet 1. oktober 2008 Forfatter Del Skrevet 1. oktober 2008 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
kaffenils Skrevet 1. oktober 2008 Del Skrevet 1. oktober 2008 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. Lenke til kommentar
zyklo Skrevet 1. oktober 2008 Forfatter Del Skrevet 1. oktober 2008 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
Skagen Skrevet 1. oktober 2008 Del Skrevet 1. oktober 2008 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 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
kaffenils Skrevet 1. oktober 2008 Del Skrevet 1. oktober 2008 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
zyklo Skrevet 1. oktober 2008 Forfatter Del Skrevet 1. oktober 2008 (endret) 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 1. oktober 2008 av zyklo Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå