/ 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
Problemer med update
Fra : Bjarne Pedersen


Dato : 14-09-08 20:07

Jeg sider og skal opdatere en database. Jeg får meddelelsen
"Datatyperne stemmer ikke overens i kriterieudtrykket."

Jeg tro det er fordi jeg henviser til et felt med autonummerering
i en access-database.

Jeg har prøvet med CLng(tal) og int(tal) men uden held.

Kan dette problem løses?

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

 
 
Jørn Andersen (15-09-2008)
Kommentar
Fra : Jørn Andersen


Dato : 15-09-08 14:19

On 14 Sep 2008 19:06:35 GMT, Bjarne Pedersen <bped@ofir.dk> wrote:

>Jeg sider og skal opdatere en database. Jeg får meddelelsen
>"Datatyperne stemmer ikke overens i kriterieudtrykket."
>
>Jeg tro det er fordi jeg henviser til et felt med autonummerering
>i en access-database.
>
>Jeg har prøvet med CLng(tal) og int(tal) men uden held.
>
>Kan dette problem løses?

Du kan ikke opdatere et felt, som er autonummereret, vhis det er det, du
mener. Så ville det jo ikke være auto-num. længere

Hvis ikke det er det, du mener, så send lige din SQL.

Hvis du har det autonum. felt som en del af din WHERE-betingelse, må der
ikke være ant.tegn om værdien.

Good luck!

--
Jørn Andersen,
Brønshøj

Bjarne Pedersen (15-09-2008)
Kommentar
Fra : Bjarne Pedersen


Dato : 15-09-08 21:50

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> On 14 Sep 2008 19:06:35 GMT, Bjarne Pedersen <bped@ofir.dk> wrote:
>
> >Jeg sider og skal opdatere en database. Jeg får meddelelsen
> >"Datatyperne stemmer ikke overens i kriterieudtrykket."
> >
> >Jeg tro det er fordi jeg henviser til et felt med autonummerering
> >i en access-database.
> >
> >Jeg har prøvet med CLng(tal) og int(tal) men uden held.
> >
> >Kan dette problem løses?
>
> Du kan ikke opdatere et felt, som er autonummereret, vhis det er det, du
> mener. Så ville det jo ikke være auto-num. længere
>
> Hvis ikke det er det, du mener, så send lige din SQL.
>
> Hvis du har det autonum. felt som en del af din WHERE-betingelse, må der
> ikke være ant.tegn om værdien.
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj
Her er hele opdateringen

KursusId er en unik nøgle i en access-database

'------- Opdaterer T_Kursus

Planlagt = "Ja"

KursusID1 = request.form("KursusId")


strSQL ="Update T_Kursus set "

strSQL = strSQL & "Kursusnavn = '" & request.form("Kursusnavn") & "',"
strSQL = strSQL & "Gruppe = '" & request.form("Gruppe") & "',"
strSQL = strSQL & "Planlaegger = '" & request.form("Planlaegger") & "',"
strSQL = strSQL & "Startdato = '" & request.form("dato") & "',"
strSQL = strSQL & "Split = '" & request.form("Split") & "',"
strSQL = strSQL & "fkb = '" & request.form("fkb") & "',"
strSQL = strSQL & "dage = '" & request.form("dage") & "',"
strSQL = strSQL & "Planlagt = '" & "Ja" & "'"


strSQL = strSQL & "WHERE KursusId = " & kursusId1

conn.Execute(strSQL)
'---------

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

Jørn Andersen (15-09-2008)
Kommentar
Fra : Jørn Andersen


Dato : 15-09-08 22:17

On 15 Sep 2008 20:49:57 GMT, Bjarne Pedersen <bped@ofir.dk> wrote:

>Her er hele opdateringen
>
>KursusId er en unik nøgle i en access-database
>
>'------- Opdaterer T_Kursus
>
>Planlagt = "Ja"
>
>KursusID1 = request.form("KursusId")
>
>
>strSQL ="Update T_Kursus set "
>
>strSQL = strSQL & "Kursusnavn = '" & request.form("Kursusnavn") & "',"
>strSQL = strSQL & "Gruppe = '" & request.form("Gruppe") & "',"
>strSQL = strSQL & "Planlaegger = '" & request.form("Planlaegger") & "',"
>strSQL = strSQL & "Startdato = '" & request.form("dato") & "',"
>strSQL = strSQL & "Split = '" & request.form("Split") & "',"
>strSQL = strSQL & "fkb = '" & request.form("fkb") & "',"
>strSQL = strSQL & "dage = '" & request.form("dage") & "',"
>strSQL = strSQL & "Planlagt = '" & "Ja" & "'"
>
>
>strSQL = strSQL & "WHERE KursusId = " & kursusId1

1. Jeg tror du mangler et mellemrum før WHERE
2. Har du prøvet at udskrive den resulterende SQL-streng?
Indsæt disse to linier før conn.Execute
Response.Write strSql
Response.End

Hvis du så ikke kan se fejlen, så prøv at kopiere SQL'en over i Access
og kør den dér - den er ofte god til at pege præcist på, hvor der er en
fejl.

PS: Du skal huske at validere dit input, inden du sætter det i drift,
ellers gør du din database *meget* sårbar for SQL-injektion - se:
<url: http://www.asp-faq.dk/article/?id=95>

Request.Form/.QueryString direkte i SQL-strengen er fy-fy

Good luck!

--
Jørn Andersen,
Brønshøj

Stig Johansen (16-09-2008)
Kommentar
Fra : Stig Johansen


Dato : 16-09-08 05:56

Jørn Andersen wrote:

>>strSQL ="Update T_Kursus set "
>>
>>strSQL = strSQL & "Kursusnavn = '" & request.form("Kursusnavn") & "',"
>>strSQL = strSQL & "Gruppe = '" & request.form("Gruppe") & "',"
>>strSQL = strSQL & "Planlaegger = '" & request.form("Planlaegger") & "',"
>>strSQL = strSQL & "Startdato = '" & request.form("dato") & "',"
>>strSQL = strSQL & "Split = '" & request.form("Split") & "',"
>>strSQL = strSQL & "fkb = '" & request.form("fkb") & "',"
>>strSQL = strSQL & "dage = '" & request.form("dage") & "',"
>>strSQL = strSQL & "Planlagt = '" & "Ja" & "'"
>>
>>
>>strSQL = strSQL & "WHERE KursusId = " & kursusId1
>
> 1. Jeg tror du mangler et mellemrum før WHERE

Umiddelbert ja, men i dette tilfælde er der tilsyneladende en ' før WHERE,
så det er spørgsmålet om Access håndtere dette.
Hov, tjekker lige i noget 'SQL-blad'
update hostnames set hostname='a'where ipaddress='123456789'

Den æder Access uden fejl.

> 2. Har du prøvet at udskrive den resulterende SQL-streng?
> Indsæt disse to linier før conn.Execute
> Response.Write strSql
> Response.End

Ud over det, bør Bjarne lige poste tabel definitionen.
Nu er fejlmeldingen på Dansk, og ikke altid fyldestgørende(i Access) , men
jeg kan umiddelbart se følgende muligheder:

>>strSQL = strSQL & "Startdato = '" & request.form("dato") & "',"
Datetime contra streng ?

>>strSQL = strSQL & "dage = '" & request.form("dage") & "',"
Tal med pling'er (') ?

>>strSQL = strSQL & "Planlagt = '" & "Ja" & "'"
Boolean contra streng ?

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409074
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste