/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Problemmer med INSERT INTO
Fra : Archie Mósses


Dato : 20-01-03 20:31

Jeg skal indsætte nogel data ind i min tabel "hjælp" og har brugt
flg. kode:

strDato = Date

strSQL = "Insert into Hjælp ("

--- > Linie 120 <--- strSQL = "Insert into hjælp
(Author,Authormail,Date,Post) values('" & Request.Form("name") &
"','" & Request.Form("mail") & ",'" &

strDato & ",'" & Request.Form("post") & ")"

Men den siger at der er en syntaks fejl i INSERT-INTO sætningen
linie 120.

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.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jesper Stocholm (20-01-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 20-01-03 20:40

Archie Mósses wrote :

> Jeg skal indsætte nogel data ind i min tabel "hjælp" og har brugt
> flg. kode:
>
> strDato = Date
>
> strSQL = "Insert into Hjælp ("
>
> --- > Linie 120 <--- strSQL = "Insert into hjælp
> (Author,Authormail,Date,Post) values('" & Request.Form("name") &
> "','" & Request.Form("mail") & ",'" &
>
> strDato & ",'" & Request.Form("post") & ")"
>
> Men den siger at der er en syntaks fejl i INSERT-INTO sætningen
> linie 120.
>
> 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.

for det første vil man normalt advare imod at bruge andre tegn i
feltnavne/tabelnavne/attributnavne end de amerikanske - derfor er
"Hjælp" ikke altid et godt valg.

Mht din SQL-sætning, så kan du med fordel se, hvilke data der er
nødvendige for os for at kune hjælpe bedst, i artiklen
http://asp-faq.dk/article/?id=41www.asp-faq.dk



--
Jesper Stocholm - http://stocholm.dk
www.asp-faq.dk: FAQ for dk.edb.internet.webdesign.serverside.asp
www.usenet.dk/netikette/citatteknik.html: Skriv under det du svarer på
Svar venligt til gruppen og ikke til mig privat !

Archie Mósses (20-01-2003)
Kommentar
Fra : Archie Mósses


Dato : 20-01-03 20:50

Jesper Stocholm wrote in dk.edb.internet.webdesign.serverside.asp:

> Mht din SQL-sætning, så kan du med fordel se, hvilke data der er
> nødvendige for os for at kune hjælpe bedst, i artiklen
> http://asp-faq.dk/article/?id=41www.asp-faq.dk

Her er så hele min fejl meddelelse hvis det kunne hjælpe. Synes selv jeg
har prøvet ALT.

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT
INTO-sætningen.
/forum/forum.asp, line 113


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (20-01-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-01-03 22:17

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

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste