Archie Mósses skrev:
> Jeg skal indsætte nogel data ind i min tabel "hjælp" og har brugt
> flg. kode:
>
> strDato = Date
Det er langt lettere at bruge databasefunktionen date i stedet for
at overføre en datoværdi. Lige nu lægger du en datoværdi i en
variabel, konverterer den til en streng og lader til sidst en
database om at konvertere den tilbage til en dato. Med en
datofunktion i databasen slipper du for en del potentielle fejl.
Det allerletteste vil i øvrigt være at sætte en defaultværdi på
datofeltet, og så lade det passe sig selv - dvs. fjerne det fra
insert-sætningen.
> strSQL = "Insert into Hjælp ("
Som Jesper allerede har påpeget er det ikke en udpræget god ide at
anvende andet end ascii-tegn i tabel- og feltnavne.
> --- > Linie 120 <--- strSQL = "Insert into hjælp
> (Author,Authormail,Date,Post)
Klassisk fejl - "Date" er et reserveret ord, i hvert fald i Access-
databaser. Det er formentlig her din fejl ligger. Det er bedst hvis
du ændrer feltnavnet helt, men du kan slippe af sted med at benytte
reserverede ord som feltnavne ved at omkranse dem med [] - altså
[Date] i stedet for Date.
values('" & Request.Form("name") &
> "','" & Request.Form("mail") & ",'" &
Du har godt nok andre bekymringer lige nu - men selv om ovenstående
syntaktisk er korrekt rummer det alligevel en potentiel fejl fordi
du ikke sikrer dig mod at dine form-requests kan indholde
anførselstegn.
> strDato & ",'"
Så vidt jeg husker skal datoværdier i Access omkranses af #. Men
som nævnt højere oppe er der ingen grund til at generere
datoværdien i asp når det samme kan gøres direkte i Access.
Funktionen Date (som du har brugt som feltnavn) virker på samme
måde i Access som i asp - så i stedet for ... "', " & strDato & ",
'" .... kan du nøjes med at skrive: ... "', Date, '" ... (bemærk at
der ikke skal anførselstegn om Date).
> & Request.Form("post") & ")"
Og så var der lige en fejl mere - du har glemt et afsluttende
anførselstegn til værdien af Request.Form("post"). Ret til:
& Request.Form("post") & "')"
> Jeg har kunnet gøre det før, bare i en anden sammenhæng. Er der
> nogen der ka nfortælle mig hvoffor den ikke virke nu.
Har du læst artiklen på det link Jesper gav?
(<
http://asp-faq.dk/article/?id=41>)
Nu var din kode ikke specielt svær at overskue hvis man har
erfaring med sqlsætninger, men det er _altid_ en hjælp at skrive
den færdige sqlsætning ud - efter alle strengsammensætninger og
variabelerstatninger. Hvis du gjorde det ville du formentlig selv
kunne finde fejl som det manglende anførselstegn.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html