/ 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
Ikke samsvar mellom datatyper i vilkårsutt~
Fra : MooreHojer


Dato : 13-05-04 10:54

Jeg bruger følgende sætning til at opdatere min database (linie 11-15):

strSQL = "Update opload set "
strSQL = strSQL & "rettighed= '" & Request.Form("omraade") & "' "
strSQL = strSQL & " Where Id = 21"

Conn.Execute(strSQL)

og får denne her her fejlmeldning:

Feiltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Ikke samsvar mellom datatyper i
vilkårsuttrykk
/omraade.asp, linje 15


er der nogen der kan fortælle mig hvad der er galt?

--
Simon Moore Højer



 
 
Jens Gyldenkærne Cla~ (13-05-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 13-05-04 11:26

MooreHojer skrev:

> strSQL = "Update opload set "
> strSQL = strSQL & "rettighed= '" & Request.Form("omraade") &
> "' " strSQL = strSQL & " Where Id = 21"

Hvordan ser strSQL ud når koden køres? (se vejledningen på
<http://asp-faq.dk/article/?id=41> mht. at udskrive sql-variable).


> Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
> [Microsoft][ODBC Microsoft Access Driver] Ikke samsvar mellom
> datatyper i vilkårsuttrykk
> /omraade.asp, linje 15

Umiddelbart ser din sql-opbygning fornuftig ud. Fejlen betyder at
der er mismatch mellem to datatyper i sætningen - det kan enten
være tildelingen rettighed = 'foo' eller sammenligningen ID = 21.

Den mest almindelige årsag til fejl af denne type er at man bruger
anførselstegn til et talfelt. Hvis rettighed har felttypen tal,
skal der ikke anførselstegn om værdien.
--
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

MooreHojer (13-05-2004)
Kommentar
Fra : MooreHojer


Dato : 13-05-04 11:58

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns94E87E71C2C07jcdmfdk@gyrosmod.dtext.news.tele.dk...
> MooreHojer skrev:
>
> > strSQL = "Update opload set "
> > strSQL = strSQL & "rettighed= '" & Request.Form("omraade") &
> > "' " strSQL = strSQL & " Where Id = 21"
>
> Hvordan ser strSQL ud når koden køres?


SQL-sætning bliver: Update opload set rettighed= 'Lovsang' Where Id = 21



Jens Gyldenkærne Cla~ (13-05-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 13-05-04 12:57

MooreHojer skrev:

> SQL-sætning bliver: Update opload set rettighed= 'Lovsang'
> Where Id = 21

Godt. Den sætning er syntaktisk korrekt, så fejlen må ligge i en
gal felttype i rettighed eller id.

Hvilke felttyper har de to felter i databasen? (Hvis det er Access,
så åbn databasen, højreklik på tabellen og vælg design, og vælg de
to felter for at se egenskaberne for dem).
--
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

MooreHojer (13-05-2004)
Kommentar
Fra : MooreHojer


Dato : 13-05-04 13:24


> Hvilke felttyper har de to felter i databasen?

Det er tekstfelter. ID tillader ikke nul-længe, er indekseret og tillader
dubletter. RETTIGHED tillader nul-længede og er ikke indekseret.



Jens Gyldenkærne Cla~ (13-05-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 13-05-04 13:33

MooreHojer skrev:

>> Hvilke felttyper har de to felter i databasen?
>
> Det er tekstfelter.

Godt. Så er fejlen at du sammenligner tekstfeltet id med talværdien
21.

Put anførselstegn om tallet (på samme måde som der er det om
værdien til rettighed) - så skulle det virke. Hvis id altid er et
tal, vil det dog give bedre performance at bruge et talfelt. I så
fald skal du ændre databasen og ikke ændre asp-koden.
--
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

MooreHojer (13-05-2004)
Kommentar
Fra : MooreHojer


Dato : 13-05-04 14:51

> Put anførselstegn om tallet (på samme måde som der er det om
> værdien til rettighed) - så skulle det virke.

Tak det hjalp!



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