/ 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
slette i en database
Fra : Nano**


Dato : 18-09-02 00:02

jeg skal slette et ID i en database, jegg bruger koden:
<%
' 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("/cgi-bin/community.mdb")
Conn.Open DSN

' SQL sletter record
strID = Request.Form("ID")
strSQL = "Delete from Kalender where ID =strID"
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
men der kommer en fejl:
a.. Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var
ventet 1.
/remove.asp, line 18
a.. Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
a.. Side:
POST 4 bytes to /remove.asp
a.. POST Data:
ID=9

hvad er der galt? har fornemmelse af at der er et mellemrum efter IDnummeret
(9) måske det skylder fejlen?



 
 
Jørn Andersen (18-09-2002)
Kommentar
Fra : Jørn Andersen


Dato : 18-09-02 01:11

On Wed, 18 Sep 2002 01:02:24 +0200, "Nano**" <nano@nospam.dk> wrote:

>jeg skal slette et ID i en database, jegg bruger koden:

>' SQL sletter record
>strID = Request.Form("ID")
>strSQL = "Delete from Kalender where ID =strID"

Prøv med:
strSQL = "Delete from Kalender where ID =" & strID
- hvis strID er et tal og ikke en streng
(Den burde snarere hedde intID el. lign.)

Hvis strID skal være en VB Script-variabel og ikke en dle
afSQL-strengen, skal den holdes uden for strengen.

Good luck!

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

Peter Lykkegaard (18-09-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-09-02 11:58

Som svar på skriblerier nedfældet af Jørn Andersen :

> On Wed, 18 Sep 2002 01:02:24 +0200, "Nano**" <nano@nospam.dk> wrote:
>
>> jeg skal slette et ID i en database, jegg bruger koden:
>
>> ' SQL sletter record
>> strID = Request.Form("ID")
>> strSQL = "Delete from Kalender where ID =strID"
>
> - hvis strID er et tal og ikke en streng
> (Den burde snarere hedde intID el. lign.)
>
Faktisk er alle variabler i VBScript af typen variant...

Jeg ville vælge lngID da autonummer er af typen Langt Heltal (long)

mvh/Peter Lykkegaard



Lars Hoffmann (18-09-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 18-09-02 12:44


"Peter Lykkegaard" <polonline@hot.mail.com>

> > - hvis strID er et tal og ikke en streng
> > (Den burde snarere hedde intID el. lign.)
> >
> Faktisk er alle variabler i VBScript af typen variant...

....men i dette tilfælde hentydes der naturligvis til feltets type i
Database,



Peter Lykkegaard (18-09-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-09-02 12:57

Som svar på skriblerier forfattet af Lars Hoffmann

> "Peter Lykkegaard" <polonline@hot.mail.com>
>
>>> - hvis strID er et tal og ikke en streng
>>> (Den burde snarere hedde intID el. lign.)
>>>
>> Faktisk er alle variabler i VBScript af typen variant...
>
> ...men i dette tilfælde hentydes der naturligvis til feltets type i
> Database,

Nu vi er i gang med at dissekere fluer

Men du ID eller strID fra Nano's select statement?
ID er en tilsyneladende en attribut i en tabel i databasen
strID kunne være en script variabel, der retteligt burde hedde lngID - hvis
det er en script variabel

mvh/Peter Lykkegaard



Jørn Andersen (18-09-2002)
Kommentar
Fra : Jørn Andersen


Dato : 18-09-02 15:16

On Wed, 18 Sep 2002 12:57:39 +0200, "Peter Lykkegaard"
<polonline@hot.mail.com> wrote:

>Faktisk er alle variabler i VBScript af typen variant...

Det er selvfølgelig rigtigt, men den værdi den indeholder kan have
forskellig type. (Som man i øvrigt kan finde med TypeName-funktionen.)
Så forskellen er vel mest, at man ikke Dim'er den som en bestemt type,
men at den kan skifte undervejs.

>Jeg ville vælge lngID da autonummer er af typen Langt Heltal (long)

Det vil nok ikke være noget dårligt valg

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

Peter Lykkegaard (18-09-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-09-02 15:50

Som svar på skriblerier nedfældet af Jørn Andersen :

> On Wed, 18 Sep 2002 12:57:39 +0200, "Peter Lykkegaard"
> <polonline@hot.mail.com> wrote:
>
>> Faktisk er alle variabler i VBScript af typen variant...
>
> Det er selvfølgelig rigtigt, men den værdi den indeholder kan have
> forskellig type. (Som man i øvrigt kan finde med TypeName-funktionen.)
> Så forskellen er vel mest, at man ikke Dim'er den som en bestemt type,
> men at den kan skifte undervejs.

Du ser det hvis du sammenligner to variabler der burde være af typen integer
eller long, men VBScript opfatter dem som string - pga den grundlæggende
type er variant
Man _skal_ lave convert i dette tilfælde ved at bruge CLng eller CInt for at
få en korrekt sammenligning - dvs fx korrekt boolsk værdi i forhold det
forventede

<%
Dim lngSmall
Dim lngBig

lngSmall = 02
lngBig = 13

Response.Write TypeName(lngBig) & "<br>"
Response.Write TypeName(lngSmall) & "<br>"


If lngSmall > lngBig Then
Response.Write "'" & lngSmall & "' er større end '" & lngBig & "'<br>"
Else
Response.Write "'" & lngSmall & "' er mindre end '" & lngBig & "'<br>"
End If

If CLng(lngSmall) < CLng(lngBig) Then
Response.Write lngSmall & " er mindre end " & lngBig & "<br>"
Else
Response.Write lngSmall & " er større end " & lngBig & "<br>"
End If

Response.End
%>

Damn, det virker uden convert i ASP, men ikke i det program jeg bruger i
forb med VBScript - Damn
Kan det være i forbindelse med at man henter data fra et recordset? - hmmm


mvh/Peter Lykkegaard




Jørn Andersen (18-09-2002)
Kommentar
Fra : Jørn Andersen


Dato : 18-09-02 17:58

On Wed, 18 Sep 2002 16:49:55 +0200, "Peter Lykkegaard"
<polonline@hot.mail.com> wrote:

>Du ser det hvis du sammenligner to variabler der burde være af typen integer
>eller long, men VBScript opfatter dem som string - pga den grundlæggende
>type er variant
>Man _skal_ lave convert i dette tilfælde ved at bruge CLng eller CInt for at
>få en korrekt sammenligning - dvs fx korrekt boolsk værdi i forhold det
>forventede

Hvad er det lige du vil vise her?

At 02 er er mindre end 13?
Det vil den vel altid være - også selv om det var en streng? Hvorimod:
"2" > "13"

>lngSmall = 02
>lngBig = 13

Jeg tror, at når den er defineret uden " så vil den opfatte den som
tal. (?)
<snip>

>Damn, det virker uden convert i ASP, men ikke i det program jeg bruger i
>forb med VBScript - Damn
>Kan det være i forbindelse med at man henter data fra et recordset? - hmmm

Tror jeg.

Et par andre eksempler:
TypeName("2") ' Giver String
TypeName(2) ' Giver Integer
TypeName(2.3) ' Giver Double
TypeName("tekst") ' Giver String
TypeName(Len("tekst")) ' Giver Long

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

Peter Lykkegaard (18-09-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-09-02 19:46

Som svar på skriblerier forfattet af Jørn Andersen

> Hvad er det lige du vil vise her?
>
Ingenting viste det sig
Jeg har programmeret VBScript i et propertiært produkt igennem 2½ år, og
næsten intet asp
Den viste kode fejler i dette produkt, men ikke i ASP

>> Damn, det virker uden convert i ASP, men ikke i det program jeg
>> bruger i forb med VBScript - Damn
>> Kan det være i forbindelse med at man henter data fra et recordset?
>> - hmmm
>
> Tror jeg.
>
Jeg må se at grave det kode frem jeg havde problems med
Kan være at eksemplet var forkert skruet sammen

mvh/Peter Lykkegaard



Nano** (18-09-2002)
Kommentar
Fra : Nano**


Dato : 18-09-02 20:45

Er ikke så god til ASP og programering, ved derfor overhovedet ikke hvad det
i snakker om.
jeg kaldte den bare for strID for de jeg kiggede på noget andet kode, der er
sådan jeg bedst lærer, så sker der bare nogle smuttere engang i mellem, hvor
jeg ikke lærer det venlig og strukturerede sprog



Jørn Andersen (18-09-2002)
Kommentar
Fra : Jørn Andersen


Dato : 18-09-02 21:16

On Wed, 18 Sep 2002 21:45:24 +0200, "Nano**" <nano@nospam.dk> wrote:

>Er ikke så god til ASP og programering, ved derfor overhovedet ikke hvad det
>i snakker om.

Bare rolig, jeg er heller ikke helt sikker

>jeg kaldte den bare for strID for de jeg kiggede på noget andet kode, der er
>sådan jeg bedst lærer, så sker der bare nogle smuttere engang i mellem, hvor
>jeg ikke lærer det venlig og strukturerede sprog

Det er også den måde, jeg plejer at lære mest på. En gang imelllem er
det dog en god idé at læse noget grundlæggende (og dernæst knapt så
grundlæggende) teori. Problemet med *kun* at lære fra nadres eksempler
er, at man både lærer de rigtige ting *og* de dårlige vaner.

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

Peter Lykkegaard (18-09-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-09-02 21:51

Som svar på skriblerier forfattet af Nano**

> Er ikke så god til ASP og programering, ved derfor overhovedet ikke
> hvad det i snakker om.

Det kommer med tiden
En gang i mellem løber iveren af med os, så bare ignorer det eller slå os
(hårdt) oven i hovedet

God vind - Peter





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

Månedens bedste
Årets bedste
Sidste års bedste