/ 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
Data type mismatch (begynderfejl!!)
Fra : Claus Skaarup \(Arbe~


Dato : 11-04-07 12:32

Jeg har en simpel kalender, hvor jeg gerne vil have folk til at melde afbud
via en form, hvor de blot skal indtaste navn.

Jeg har følgende kodestump:

<%

'******

if len(request.form("Navn")) > 0 then
Id2 = request.querystring("Id")
Navn = Request.Form("Navn")

' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath(".../db/dbase.mdb")
Conn.Open DSN

indafb = "Insert into Afbud (Id2, Navn) values('" & Id2 & "', '" & Navn &
"')"
Conn.Execute(indafb)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
Response.redirect "indexn.asp?art=kal-enkelt"

End If

- og min form:

Response.write "Meld afbud"
Response.Write "<form action='indexn.asp?art=kal-enkelt' method='post'
name='Afbud'
id='Afbud'>"
Response.Write "<table><tr><td>Navn</td><td>"
Response.Write "<input name='Navn' type='text' id='Navn'></td>"

Response.Write "<input type='submit' name='Submit' value='Indsæt'>"

Response.Write "</td></tr></table></form>"

******

I min tabel, der hedder "Afbud" er der 3 felter: Id, Id2 og Navn. Id2 er
Id'en på det kalenderemne, der er aktuelt lige nu. Altså så man kun melder
afbud til kalender id 239 f.eks. I URL'en står således:
www.nnn.dk/indexn.asp&art=kal-enkelt.asp?id=239

Hvorfor hulen får jeg så en "data type mismatch", når jeg submitter et navn?
I tabellen er Id2 angivet til et tal og Navn er angivet til tekst.

Mvh. Claus



 
 
Finn Elmgaard (11-04-2007)
Kommentar
Fra : Finn Elmgaard


Dato : 11-04-07 19:51

"Claus Skaarup (Arbejde)" <claus@limfjordsteatret.fejl> wrote in message
news:461cc6fe$0$14039$edfadb0f@dread15.news.tele.dk...
>>
> indafb = "Insert into Afbud (Id2, Navn) values('" & Id2 & "', '" & Navn &
> "')"
> Conn.Execute(indafb)
>
>
> I min tabel, der hedder "Afbud" er der 3 felter: Id, Id2 og Navn. Id2 er
> Id'en på det kalenderemne, der er aktuelt lige nu. Altså så man kun melder
> afbud til kalender id 239 f.eks. I URL'en står således:
> www.nnn.dk/indexn.asp&art=kal-enkelt.asp?id=239
>
> Hvorfor hulen får jeg så en "data type mismatch", når jeg submitter et
navn?
> I tabellen er Id2 angivet til et tal og Navn er angivet til tekst.


Hvis Id2 er angivet (=datatype) til et tal i databasen, skal du ikke have '
omkring det i din SQLstring.
Så prøv med:
indafb = "Insert into Afbud (Id2, Navn) values(" & Id2 & ", '" & Navn &
"')"

mvh
Finn




Claus Skaarup \(Arbe~ (12-04-2007)
Kommentar
Fra : Claus Skaarup \(Arbe~


Dato : 12-04-07 09:26

>
>
> Hvis Id2 er angivet (=datatype) til et tal i databasen, skal du ikke have
> '
> omkring det i din SQLstring.
> Så prøv med:
> indafb = "Insert into Afbud (Id2, Navn) values(" & Id2 & ", '" & Navn &
> "')"
>
Hmm... Jeg får en "Syntax error in INSERT INTO statement", hvis jeg har
denne linie

indafb = "Insert into Afbud (Id2,Navn) values(" & idx & ",'" & Navn & "')"
Conn.Execute(indafb)

Hvis jeg fjerner "id2" og "idx", så den kun ser sådan ud:

indafb = "Insert into Afbud (Navn) values('" & Navn & "')"

- kører det fint, men det kan jeg ikke rigtig bruge til noget...

Alt hjælp modtages med kyshånd.

Mvh. Claus



Jørn Andersen (12-04-2007)
Kommentar
Fra : Jørn Andersen


Dato : 12-04-07 12:09

On Thu, 12 Apr 2007 10:25:46 +0200, "Claus Skaarup \(Arbejde\)"
<claus@limfjordsteatret.fejl> wrote:

>Hmm... Jeg får en "Syntax error in INSERT INTO statement", hvis jeg har
>denne linie
>
>indafb = "Insert into Afbud (Id2,Navn) values(" & idx & ",'" & Navn & "')"

Hvad får du, når du udskriver SQL-strengen:
Response.Write indafb
Respnose.End
- ?

Når man har problemer med SQL-strenge, er det altid det første skridt at
udskrive den, så man *ved* hvad der står i den og ikke kun *tror*.
Of te bliver det så åbenlyst, hvad problemet er. Ellers kan man prøve at
køre den resulterende SQL i selve databasen og se, hvad der så sker.

>Conn.Execute(indafb)
>
>Hvis jeg fjerner "id2" og "idx", så den kun ser sådan ud:
>
>indafb = "Insert into Afbud (Navn) values('" & Navn & "')"
>
>- kører det fint, men det kan jeg ikke rigtig bruge til noget...

Du kan i hvert fald bruge det til at konstatere, at det er din
Id2-indsættelse, det går galt med. Indeholder idx en gyldig værdi?

Good luck!

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

Claus Skaarup \(Arbe~ (12-04-2007)
Kommentar
Fra : Claus Skaarup \(Arbe~


Dato : 12-04-07 14:12


"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:rg4s13hfi604tocbjfquph6u27p68ucn5p@4ax.com...
> On Thu, 12 Apr 2007 10:25:46 +0200, "Claus Skaarup \(Arbejde\)"
> <claus@limfjordsteatret.fejl> wrote:
>
>>Hmm... Jeg får en "Syntax error in INSERT INTO statement", hvis jeg har
>>denne linie
>>
>>indafb = "Insert into Afbud (Id2,Navn) values(" & idx & ",'" & Navn & "')"
>
> Hvad får du, når du udskriver SQL-strengen:
> Response.Write indafb
> Respnose.End
> - ?
>
He he. Der stod så ikke noget i "idx". Jeg havde ikke fået tildelt den nogen
værdi.

Tak for hjælpen. Friske øjne er en god ting.

Et andet spørgsmål: Hvis jeg vil lave en response redirect indeholdende en
variabel a-la: Response.redirect("www.test.dk?id=variabel"), hvor "variabel"
indeholder et eller andet tal, hvordan gør jeg så det? Kan man overhovedet
det?

Mvh. Claus



Jørn Andersen (12-04-2007)
Kommentar
Fra : Jørn Andersen


Dato : 12-04-07 15:05

On Thu, 12 Apr 2007 15:12:02 +0200, "Claus Skaarup \(Arbejde\)"
<claus@limfjordsteatret.fejl> wrote:

>Et andet spørgsmål: Hvis jeg vil lave en response redirect indeholdende en
>variabel a-la: Response.redirect("www.test.dk?id=variabel"), hvor "variabel"
>indeholder et eller andet tal, hvordan gør jeg så det? Kan man overhovedet
>det?

Har du prøvet?

Det burde der ikke være noget i vejen for - det skal bare være en
"rigtig" url:
Response.Redirect("http://www.test.dk?id=variabel")
- altså med http://, hvis det ikke er på samme domain.

Good luck!

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

Claus Skaarup (12-04-2007)
Kommentar
Fra : Claus Skaarup


Dato : 12-04-07 17:05


"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:b1fs13tkumtnj845uijtnocotkqh2aqsjn@4ax.com...
> On Thu, 12 Apr 2007 15:12:02 +0200, "Claus Skaarup \(Arbejde\)"
> <claus@limfjordsteatret.fejl> wrote:
>
>>Et andet spørgsmål: Hvis jeg vil lave en response redirect indeholdende en
>>variabel a-la: Response.redirect("www.test.dk?id=variabel"), hvor
>>"variabel"
>>indeholder et eller andet tal, hvordan gør jeg så det? Kan man overhovedet
>>det?
>
> Har du prøvet?
>
> Det burde der ikke være noget i vejen for - det skal bare være en
> "rigtig" url:
> Response.Redirect("http://www.test.dk?id=variabel")
> - altså med http://, hvis det ikke er på samme domain.
>
Ja, det har jeg prøvet. Den læser ikke indholdet af variablen "variabel",
men læser det bare som ...?id=variabel.

Jeg får "server excecute error". Selvfølgelig fordi den ikke kan finde
siden.

Mvh. Claus



Jørn Andersen (12-04-2007)
Kommentar
Fra : Jørn Andersen


Dato : 12-04-07 23:48

On Thu, 12 Apr 2007 18:04:41 +0200, "Claus Skaarup"
<skaarup75@yahoo.fejl> wrote:

>> Det burde der ikke være noget i vejen for - det skal bare være en
>> "rigtig" url:
>> Response.Redirect("http://www.test.dk?id=variabel")

Ups, jeg tror lige jeg har lavet en "stavefejl" - skal vist være:
Response.Redirect("http://www.test.dk/?id=variabel")
- ellers prøv med filnavn:
Response.Redirect("http://www.test.dk/default.asp?id=variabel")
- eller hvad den nu hedder.

>> - altså med http://, hvis det ikke er på samme domain.
>>
>Ja, det har jeg prøvet. Den læser ikke indholdet af variablen "variabel",
>men læser det bare som ...?id=variabel.

Hvordan læser du den?
Du burde kunne hente den med:
myVar = Request.QueryString("id")

>Jeg får "server excecute error". Selvfølgelig fordi den ikke kan finde
>siden.

Server.Execute er ikke det samme som Response.Redirect - eller er der
noget jeg har misforstået?

Med Server.Execute kan du ikke sætte parametre på. Desuden er
forskellen, at Server.Execute altid foregår på samme server.


Mvh. Jørn

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

Leif Neland (13-04-2007)
Kommentar
Fra : Leif Neland


Dato : 13-04-07 05:56

Claus Skaarup wrote:
> "Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
> news:b1fs13tkumtnj845uijtnocotkqh2aqsjn@4ax.com...
>> On Thu, 12 Apr 2007 15:12:02 +0200, "Claus Skaarup \(Arbejde\)"
>> <claus@limfjordsteatret.fejl> wrote:
>>
>>> Et andet spørgsmål: Hvis jeg vil lave en response redirect
>>> indeholdende en variabel a-la:
>>> Response.redirect("www.test.dk?id=variabel"), hvor "variabel"
>>> indeholder et eller andet tal, hvordan gør jeg så det? Kan man
>>> overhovedet det?

>>
>> Har du prøvet?
>>

> Ja, det har jeg prøvet. Den læser ikke indholdet af variablen
> "variabel", men læser det bare som ...?id=variabel.
>
Det er jo klart, hvordan skulle serveren vide at den skal udskifte netop
bogstaverne "variabel" og ikke f.ex. "id"?

Du skal sammensætte din streng: "http://www.test.dk?id=" & variabel

Leif



Claus Skaarup \(Arbe~ (13-04-2007)
Kommentar
Fra : Claus Skaarup \(Arbe~


Dato : 13-04-07 08:44


"Leif Neland" <leif@neland.dk> skrev i en meddelelse
news:461f0d52$0$90275$14726298@news.sunsite.dk...
> Claus Skaarup wrote:
>> "Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
>> news:b1fs13tkumtnj845uijtnocotkqh2aqsjn@4ax.com...
>>> On Thu, 12 Apr 2007 15:12:02 +0200, "Claus Skaarup \(Arbejde\)"
>>> <claus@limfjordsteatret.fejl> wrote:
>>>
>>>> Et andet spørgsmål: Hvis jeg vil lave en response redirect
>>>> indeholdende en variabel a-la:
>>>> Response.redirect("www.test.dk?id=variabel"), hvor "variabel"
>>>> indeholder et eller andet tal, hvordan gør jeg så det? Kan man
>>>> overhovedet det?
>
>>>
>>> Har du prøvet?
>>>
>
>> Ja, det har jeg prøvet. Den læser ikke indholdet af variablen
>> "variabel", men læser det bare som ...?id=variabel.
>>
> Det er jo klart, hvordan skulle serveren vide at den skal udskifte netop
> bogstaverne "variabel" og ikke f.ex. "id"?
Nej, det er jo det >

> Du skal sammensætte din streng: "http://www.test.dk?id=" & variabel
>
Ja, men det er mest syntaksen jeg ikke har på plads. Linien ser sådan ud:
Response.redirect ("indexn.asp?art=kalender&id=")
Hvordan jeg skal sætte den sidste variabel ind ved jeg ikke. Hvis jeg
skriver ("indexn.asp?art=kalender&id=" & refresh), hvorrefresh er navnet på
variablen, kommer der ingenting efter de sidste gåseøjne. Og "refresh" HAR
en værdi. Det har jeg checket.

Mvh. Claus



Jørn Andersen (13-04-2007)
Kommentar
Fra : Jørn Andersen


Dato : 13-04-07 10:28

On Fri, 13 Apr 2007 09:43:46 +0200, "Claus Skaarup \(Arbejde\)"
<claus@limfjordsteatret.fejl> wrote:


>Ja, men det er mest syntaksen jeg ikke har på plads. Linien ser sådan ud:
>Response.redirect ("indexn.asp?art=kalender&id=")
>Hvordan jeg skal sætte den sidste variabel ind ved jeg ikke. Hvis jeg
>skriver ("indexn.asp?art=kalender&id=" & refresh), hvorrefresh er navnet på
>variablen, kommer der ingenting efter de sidste gåseøjne. Og "refresh" HAR
>en værdi. Det har jeg checket.

Hvad med:
strUrl = "indexn.asp?art=kalender&id=" & refresh
Response.Redirect (strUrl)
- ?

Good luck!

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

Jørn Andersen (12-04-2007)
Kommentar
Fra : Jørn Andersen


Dato : 12-04-07 15:07

On Thu, 12 Apr 2007 15:12:02 +0200, "Claus Skaarup \(Arbejde\)"
<claus@limfjordsteatret.fejl> wrote:

>He he. Der stod så ikke noget i "idx". Jeg havde ikke fået tildelt den nogen
>værdi.

Så fik du lært det: Variable indeholder ikke altid det man regner.

>Tak for hjælpen. Friske øjne er en god ting.

Velbekomme.


Mvh. Jørn

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

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

Månedens bedste
Årets bedste
Sidste års bedste