Avatar billede js17dk Nybegynder
27. januar 2001 - 16:31 Der er 43 kommentarer og
1 løsning

Forskel

Jeg er ved at lave mit admin modul.
Hvad er forskellen på:
Clng og Cstr ??

Den vil nemlig ikke gemme de ændringer jeg laver
Avatar billede tdaugaard Nybegynder
27. januar 2001 - 16:35 #1
CLng() konverterer en \"expression\" (udtryk) til en variabel af sub-typen Long, mens CStr gør det samme bare til en String
Avatar billede tdaugaard Nybegynder
27. januar 2001 - 16:36 #2
\"Samlingen\" tæller:

CInt() - Integer
CLng() - Long
CSng() - Single
CDbl() - Double
CCur() - Currency
CStr() - String
CBool() - Boolean
Avatar billede tdaugaard Nybegynder
27. januar 2001 - 16:37 #3
Desuden, når jeg siger \"sub-type\" er det fordi at ALLE variabler i ASP er af typen Variant, men kan have en sub-type som f.eks. Integer.
Avatar billede js17dk Nybegynder
27. januar 2001 - 16:38 #4
når jeg bruger Clng kommer der en fejl, men når jeg bruger Cstr kommer der ingen fejl, men den gemmer det ikke.

Kan du regne ud hvad der er galt?
Avatar billede tdaugaard Nybegynder
27. januar 2001 - 16:39 #5
js17dk:> altså helt ærligt, hvordan vil du have jeg skal vide det uden at se noget kode !?
Avatar billede js17dk Nybegynder
27. januar 2001 - 16:42 #6
det kunne godt være at der var et generalt prob. der gik igen.

(er clng til tal, og cstr til tekst??)

kommer noget kode lige om lidt
Avatar billede js17dk Nybegynder
27. januar 2001 - 16:45 #7
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"test.mdb\")
ID = CLng(Request.QueryString(\"ID\"))
Mode = LCase(CStr(Request.QueryString(\"Mode\")))
Person = CLng(Request.QueryString(\"Person\"))
%>

<%
Select Case Mode
    Case \"nyperson\"
        If State = 0 Then
            Response.Write \"<h3>Ny Person</h3>\"
            ShowpersonForm
        Else
            SQLstmt = \"INSERT INTO Person (Person) VALUES (\"
            SQLstmt = SQLstmt & \"\'\" & Person & \"\', \"
            SQLstmt = SQLstmt & \"\" & ID & \");\"
            Conn.Execute SQLstmt
            %>
            <p align=\"center\">personen er blevet tilføjet.<br>
            [<a href=\"person.asp\">Tilbage</a>]

Avatar billede js17dk Nybegynder
27. januar 2001 - 16:45 #8
Koden ligger i en fil der hedder asp.inc
Avatar billede tdaugaard Nybegynder
27. januar 2001 - 16:47 #9
Og hvor får du fejl !?!?
Avatar billede js17dk Nybegynder
27. januar 2001 - 16:48 #10
Fejlen er at den gemmer ikke
Avatar billede tdaugaard Nybegynder
27. januar 2001 - 16:57 #11
I din database ? Du bruger da også et ygyldigt SQL kald ...

SQLstmt = \"INSERT INTO Person (Person, ID) VALUES (\'\" & Person & \"\',\" & ID & \");\"

prøv det
Avatar billede js17dk Nybegynder
27. januar 2001 - 17:00 #12
det hjælper ikke, jeg har lige noget mere kode to sek
Avatar billede stringbuffer Nybegynder
27. januar 2001 - 17:00 #13
ja, Lng er et (lang hel)tal og Str er en tekststreng
Avatar billede js17dk Nybegynder
27. januar 2001 - 17:02 #14
    Case \"retperson\"
        If State = 0 Then
            Set RS = Conn.Execute(\"SELECT * FROM Person WHERE ID = \" & ID)
            Person = RS(\"Person\")
       
            ShowpersonForm
        Else
            SQLstmt = \"UPDATE Person SET \"
            SQLstmt = SQLstmt & \"Person = \'\" & Person & \"\' \"
            SQLstmt = SQLstmt & \"WHERE ID = \" & ID
            Conn.Execute SQLstmt
            %>
            <p align=\"center\">Personen er blevet ændret.<br>
            [<a href=admin.asp?mode=retbtik&id=<%= ID %>>Tilbage</a>]
Avatar billede tdaugaard Nybegynder
27. januar 2001 - 17:03 #15
js17dk:> forresten behøver du ikke bruge CLng() og CStr() når det bare skal bruges i en SQL streng, da det er fløjtende ligemeget om det er tal eller strenge.
Avatar billede js17dk Nybegynder
27. januar 2001 - 17:07 #16
okay, skal jeg så bare skrive:
Person = (Request.QueryString(\"Person\"))
Avatar billede tdaugaard Nybegynder
27. januar 2001 - 17:18 #17
Person = Request.QueryString(\"Person\")

sådan
Avatar billede js17dk Nybegynder
27. januar 2001 - 17:39 #18
ok, kan du se fejlen i det andet??
Avatar billede js17dk Nybegynder
27. januar 2001 - 18:11 #19
Jeg afsætter lige nogle flere point
Avatar billede tdaugaard Nybegynder
27. januar 2001 - 19:09 #20
nææ ..
Avatar billede js17dk Nybegynder
27. januar 2001 - 19:52 #21
Der er ikke noget med at databasen skal være sat op til noget bestemt??
Avatar billede eagleeye Praktikant
27. januar 2001 - 21:14 #22
Generelt er det en god ide ikke at kalde Tabel og felt navn for det samme. Det er lettere at finde ud af når man kikker på det.
Ligeledes bør man ikke kalde variable det samme som Felt navne.. igen fordi det er lettere at se forskel når de har hvet deres navn.

tabllen: Person -> PersonTabel
variable: Person -> newPerson ligeledes ID -> idid

Det lyder måske lidt dumt, men det er 10 gange nemmere at finde fejl i koden.
Avatar billede eagleeye Praktikant
27. januar 2001 - 21:15 #23
Kommer der en ODBC fejl eller ser det ud som om SQL\'en bliver gennemført?
Avatar billede js17dk Nybegynder
27. januar 2001 - 22:12 #24
Altså den viser bare den samme side igen uden af den opdatere noget:

Prøv her:
http://go4net.adsl.dk/netdisney/admin/
Brugernavn: Test
Password: Test.

Er kun oppe når min com er tændt
Avatar billede eagleeye Praktikant
27. januar 2001 - 22:34 #25


Jeg får denne fejl når jeg er inde i http://go4net.adsl.dk/netdisney/admin/viskategori.asp og trykker på ret:
Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e10\'

[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.

/netdisney/admin.asp, linje 1256
Avatar billede eagleeye Praktikant
27. januar 2001 - 22:37 #26
Den fejl skyldes at der mangler en parameter i en SQL streng. Eks.vis  ...WHERE ID=ID\" skulle være ...WHERE ID=\"&ID

Jeg har prøvet ny:
http://go4net.adsl.dk/netdisney/admin.asp?mode=nycategories&id2=0
trykker gem og får samme side med linket:
http://go4net.adsl.dk/netdisney/admin.asp?mode=nycategories&state=1&id=0&Name=TestNavn&Transfer=TestTransger&Parent=3&submit=Gem
Avatar billede js17dk Nybegynder
27. januar 2001 - 22:37 #27
Ja, den har jeg også selv fået prøv at rette en af de andre
Avatar billede eagleeye Praktikant
27. januar 2001 - 22:38 #28
Den fejl skyldes at der mangler en parameter .... henviser til ODBC fejlen \'80040e10\'
Avatar billede js17dk Nybegynder
27. januar 2001 - 22:42 #29
hvad betyder det?
Avatar billede eagleeye Praktikant
27. januar 2001 - 22:46 #30
Når man trykke på Gem får du læst din \"state=1\" rigtigt. Den ryger jo i samme state=0.
Avatar billede eagleeye Praktikant
27. januar 2001 - 22:46 #31
hvad betyder det?  hvad henviser du til ? ODBC eller det andet?
Avatar billede js17dk Nybegynder
27. januar 2001 - 22:47 #32
hvad skal jeg ændre, er ikke så meget inde i admin-modul
Avatar billede js17dk Nybegynder
27. januar 2001 - 22:48 #33
henviser til??? ODBC hvad betyder det
Avatar billede eagleeye Praktikant
27. januar 2001 - 22:49 #34
Jo i:
http://go4net.adsl.dk/netdisney/admin.asp?mode=retperson&id=5

du skal måske lige havde state=0 med i komandoen:
http://go4net.adsl.dk/netdisney/admin.asp?state=0&mode=retperson&id=5

Du hendter hvilken \"id\" der skal rettes, ligeledes skal du hendte \"state\". Der er bare et gæt.
Avatar billede js17dk Nybegynder
27. januar 2001 - 22:50 #35
hjælper ikke rigtig
Avatar billede eagleeye Praktikant
27. januar 2001 - 22:51 #36
ODBC = Open DataBase Connectivity
Avatar billede js17dk Nybegynder
27. januar 2001 - 22:55 #37
Kan det være noget med databasen??
Avatar billede eagleeye Praktikant
27. januar 2001 - 23:09 #38
Prøv at udskrive dine SQL statments så er det muligt at se om evt er forkerte.

SQLstmt = \"UPDATE Person SET \"
SQLstmt = SQLstmt & \"Person = \'\" & Person & \"\' \"
SQLstmt = SQLstmt & \"WHERE ID = \" & ID

response.write SQLstmt
Conn.Execute SQLstmt

Jeg tror ikke det er noget i databasen. Den kommer normalt og siger hvis der er noget galt. hvis du løre på en NT kan der måske være noget med rettigheder på database file(læs/skriv).
Avatar billede eagleeye Praktikant
27. januar 2001 - 23:33 #39
Nå men jeg har et andet forslag:

Jeg vil mene der mangler toppen skal se sådan ud:
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"test.mdb\")
ID = Request.QueryString(\"ID\")
Mode = LCase(CStr(Request.QueryString(\"Mode\")))
Person = Request.QueryString(\"Person\")
State = Request.QueryString(\"State\")
%>

Jeg har taget kode fra det du lage ind på eksperten, og tilføjet
State = Request.QueryString(\"State\")


Virker det på en anden side??
Avatar billede eagleeye Praktikant
27. januar 2001 - 23:34 #40
ICQ vil ikke lave en forbindelse, nu vil den ikke engang sende gennen serve... Næ gennem kun gennem email.. ååååhhh
Avatar billede eagleeye Praktikant
28. januar 2001 - 00:16 #41
Et svar.
Avatar billede eagleeye Praktikant
28. januar 2001 - 00:33 #42
Prøv lige at send på ICQ
Avatar billede eagleeye Praktikant
28. januar 2001 - 00:56 #43
Nu smider jeg det her:
Jeg kan squ ikke få ICQ til at fatte at den ikke skal send gennem Email, når der nu ikke er en email.

Jeg vil den i stil med det her:
<%
\' Laver en Count!
SQLstmt = \"SELECT COUNT(*) AS Antal from Billed\"
set count = conn.Execute(SQLstmt)

\' Får Antallet ind i \'antalrec\'
antalrec = count(\"Antal\")

randomize
nr=int(antalrec*rnd)
\'url=int(antalrec*rnd)

\'Hendt URL\'en i databasen.
SQLstmt = \"SELECT * FROM Billed WHERE Nr=\"&nr
set count = conn.Execute(SQLstmt)

Response.Write \"<a href=\'\"&count(\"url\")&\"\'><IMG SRC=\'images/tip\"&nr&\".gif\' border=\'0\'></a> \"

\'Lukker connection - Rydder op
set count = Nothing
set SQLstmt = Nothing
set conn = Nothing

%>

Jeg har ikke testet om det virker måske det kan give dig en ide, hvis det ikker er helt rigtigt.

Jeg ikke få ICQ ril at sende til dig. Jeg får en \"Send Thru Email\" mulighed. Der er ikke sat nogen email adresse ind i ICQ. FLOT:
Avatar billede eagleeye Praktikant
28. januar 2001 - 11:48 #44
Nu her jeg problemmet igen med ICQ !?!?!
Måske det her virker.

<%
\' Hendter billeder!
SQLstmt = \"SELECT * FROM Billed\"
set count = conn.Execute(SQLstmt)

\' Får Antallet ind i \'antalrec\'
antalrec = count.RecordCount

randomize
nr=int(antalrec*rnd)

count.movefirst
for i=1 to nr
  count.movenext
next

Response.Write \"<a href=\'\"&count(\"url\")&\"\'><IMG SRC=\'images/tip\"&nr&\".gif\' border=\'0\'></a> \"

\'Lukker connection - Rydder op
set count = Nothing
set SQLstmt = Nothing
set conn = Nothing
%>

count(\"url\") betyer man hender værdien af feltet URL i den række man er kommet til.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester