/ 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
Hvorfor vil INSERT ikke godtage tegnet '
Fra : Pelle


Dato : 23-04-01 23:42

Hejsa

Man har laver sig et script
Den kommer dog med en fejl
scriptet ser sådan ud:

<%
Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=d:\www2\icedesign\database\cd.mdb"
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
Sql = "SELECT Artist from Albums WHERE Artist LIKE 'C%'"
Set RS = Con.Execute(Sql)
Do While Not RS.EOF
If ArtitstC <> RS("artist") Then
ArtitstC = RS("artist")
strQ ="INSERT INTO kunstner (C)"
strQ = strQ & " VALUES ('" & ArtitstC &"')"
Con.Execute StrQ
end if
RS.MoveNext
Loop
Con.Close
Set Con = Nothing
response.write "Færdig"
%>

følgende fejl: opstår
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in
query expression Cut'N'Move)'.
/test/update.asp, line 12

Hvorfor vil den ikke godtage ' i navnet Cut'N'Move -
Andet problem. Hvis jeg bagefter vil flytte D% artisterne fra Albums til den
nye tabel kunstner
så forsætter den fra det ID hvor C var færdig. og ikke i toppen med ID 1
bare i (B) rækken

Hele tabellen Kunstner er lavet med rækker fra A-AA


Mvh
Peter Jensen






--

Mvh
Peter Jensen
http://www.eurocentret.dk/






 
 
Pelle (23-04-2001)
Kommentar
Fra : Pelle


Dato : 23-04-01 23:44

> bare i (B) rækken

Her menes naturligvis (D) rækken


Mvh
Peter Jensen




Pelle (24-04-2001)
Kommentar
Fra : Pelle


Dato : 24-04-01 01:28

Ups kommer til at tænke på findes der flere ulovlige tegn?

Så som ":" f.eks. D:A:D eller gælder det kun ' tegnet ?

Mvh
Peter Jensen




Jakob Andersen (24-04-2001)
Kommentar
Fra : Jakob Andersen


Dato : 24-04-01 15:03

"Pelle" <mail@icedesign.dk> wrote in message
news:9c2hdg$1p6$1@news.inet.tele.dk...
> Ups kommer til at tænke på findes der flere ulovlige tegn?
>
> Så som ":" f.eks. D:A:D eller gælder det kun ' tegnet ?

Det gælder kun ' tegnet da det er det man i SQL omkranser tekst med.

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "



Jakob Møbjerg Nielse~ (24-04-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 24-04-01 00:29

> Hvorfor vil den ikke godtage ' i navnet Cut'N'Move

Fordi den tror din string slutter efter det første '. Du skal
udskifte alle ' med '' (to ') i din string.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Pelle (24-04-2001)
Kommentar
Fra : Pelle


Dato : 24-04-01 01:23

> Fordi den tror din string slutter efter det første '. Du skal
> udskifte alle ' med '' (to ') i din string.

takker for svaret - kan du så fortælle mig hvorfor den ved næste artist (B)
forsætter defra hvor (A) er kommet (feks) ved ID 43 og ikke starte forfra
(ID1)
bare i den næste række (B) - som den køre nu vil den første kunstner få
ID44?


Mvh
Peter Jensen



Jakob Møbjerg Nielse~ (24-04-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 24-04-01 08:22

> takker for svaret - kan du så fortælle mig hvorfor den ved
> næste artist (B) forsætter defra hvor (A) er kommet (feks)
> ved ID 43 og ikke starte forfra (ID1) bare i den næste
> række (B) - som den køre nu vil den første kunstner få
> ID44?

Kan du ikke tegne tabellen med lidt ASCII, for jeg forstår altså
ikke din beskrivelse af, hvordan den ser ud?

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Pelle (24-04-2001)
Kommentar
Fra : Pelle


Dato : 24-04-01 08:33

> Kan du ikke tegne tabellen med lidt ASCII, for jeg forstår altså
> ikke din beskrivelse af, hvordan den ser ud?

Jeg skal da gerne prøve med risiko for at det knækker:

| ID | A | B |
---------------------------
| 01 | input a | |
----------------------
| 02 | input a | |
----------------------
| 03 | input a | |
----------------------
| 04 | input a | |
----------------------
| 05 | | input b |
----------------------
| 06 | | input b |


Jeg forstår ikke hvorfor den ikke begynder at skrive i B fra ID 01 i stedet
for fra ID 04, hvor A blev færdig - men det er måske såen INSERT virker
- kender ikke så meget til at skrive til en database endnu - ved at man også
kan bruge ADDNEW - måske det er det der skal til

Mvh
Peter Jensen








Jakob Møbjerg Nielse~ (24-04-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 24-04-01 17:35

> Jeg forstår ikke hvorfor den ikke begynder at skrive i B fra ID 01
i stedet
> for fra ID 04, hvor A blev færdig - men det er måske såen INSERT
virker
> - kender ikke så meget til at skrive til en database endnu - ved
at man også
> kan bruge ADDNEW - måske det er det der skal til

Hvis ID er en nøglekolonne, så kan det ikke lade sig gøre, for så
skal det være et unikt nummer. Det er for øvrigt et meget meget
dårligt design, hvis du har tænkt dig kun at bruge en kolonne ad
gangen.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Jakob Møbjerg Nielse~ (24-04-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 24-04-01 17:56

> Hvis ID er en nøglekolonne, så kan det ikke lade sig gøre,
> for så skal det være et unikt nummer. Det er for øvrigt et
> meget meget dårligt design, hvis du har tænkt dig kun at
> bruge en kolonne ad gangen.

Alternativt design:

Lav to kolonner: ID og artist. Så kan du få fat i alle der starter
med 'B' ved at skrive:

SELECT id,artist FROM kunstner WHERE artist LIKE 'b%'

Jeg kan ikke lige huske om Access bruger % eller * som wildcard.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Pelle (24-04-2001)
Kommentar
Fra : Pelle


Dato : 24-04-01 22:31

> Hvis ID er en nøglekolonne,

Det er det...

> Det er for øvrigt et meget meget dårligt design,

Sikkert? Jeg er stadig meget grøn på ASP området
og har ikke lige vidst hvad jeg skulle gøre og gribe i

Sagen er den at jeg har alle mine CD'er samlet i
programmet "Music collector" - fra den har jeg exporteret alle dataerne
til en ascii fil, som så igen er importeret i Access - jeg ved ikke om
access
kan imporetere på andre måder end som gjort - den har nemlig lavet
5 rækker i en tabel, henholdvis "artister", "albums", "skæring", "melodi",
"varighed"

Det er jo en del poster når én gruppe bliver nævnt i "artist" rækken
for hvert nummer der er at find på albumet - i praxis
5 Aerosmith albums med 11 numre, bliver til 55 gange (ID'er)
Aerosmith i "artist" rækken (og +400 forskellige CDer - pyhhh)

Hvis jeg umidelbart lagde databasen ud som den er nu og spurgte på
alle kunstnere som starter med A - bliver listen jo kilometer lang
bare alene Aerosmith ville jo fylde 55 linier.
Ideen var at lave en lille "update.asp" som man afviklede.
ind imellem den skulle frasortere alle dubletter
(hvilket fint lader sig gøre, se evt. demo på www.icedesign.dk/test)
og gemme resultatet i en ny række (A) i en tabel - i stedet for at
udskrive til skærmen. Det ville jo være meget hurtigere at udskrive den
nye række A fra start til slut, end at spørge på den eksisterende
"Artist" for derefer at frasortere dubbletter.

Men jeg er heldigvis ikke så langt i "udviklingen" af databasen eller ASP'er
at det er for sent at starte forfra - så gode råd modtages gerne...


Mvh
Peter Jensen





Jakob Møbjerg Nielse~ (25-04-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 25-04-01 09:43

> Ideen var at lave en lille "update.asp" som man afviklede.
> ind imellem den skulle frasortere alle dubletter
> (hvilket fint lader sig gøre, se evt. demo på
www.icedesign.dk/test)
> og gemme resultatet i en ny række (A) i en tabel - i stedet for at
> udskrive til skærmen. Det ville jo være meget hurtigere at
udskrive den
> nye række A fra start til slut, end at spørge på den eksisterende
> "Artist" for derefer at frasortere dubbletter.

Det er jeg ikke sikker på. Du bør læse nogen om SQL queries, da det
lyder som om du laver nogle grimme hacks. Hvis du vil have en liste
af kunstnere hvor navnet kun fremkommer en gang, skal du bruge
følgende SQL:

SELECT DISTINCT artist FROM kunstner ORDER BY artist ASC

Og pling... så har du en dubletfri, alfabetisk sorteret liste over
alle kunstnerne.

Og det gør ikke noget at der ligger 10.000 poster i databasen. Det
er den beregnet til.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Jakob Møbjerg Nielse~ (25-04-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 25-04-01 09:48

> Og pling... så har du en dubletfri, alfabetisk sorteret
> liste over alle kunstnerne.

Og hvis du kun vil have dem der starter med A:

SELECT DISTINCT artist FROM kunstner WHERE artist LIKE 'A%' ORDER BY
artist ASC

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Pelle (25-04-2001)
Kommentar
Fra : Pelle


Dato : 25-04-01 13:43

>
> SELECT DISTINCT artist FROM kunstner WHERE artist LIKE 'A%' ORDER BY
> artist ASC

Wauu - meget kortere kode - tak for det.

Spørgsmål - E.L.O (Eletric Light ....) har efter deres ComeBack
valgt at klade sig E.L.O. 2 og vil defor blive liste 2 gange...

Er det muligt at tilføje noget til SELECT... linien så den ser bort fra
tallet.
noget i retning af:

SELECT DISTINCT ... LIKE 'A%' "except if next is a number"

Mvh
Peter Jensen



Jakob Møbjerg Nielse~ (25-04-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 25-04-01 19:19

> Spørgsmål - E.L.O (Eletric Light ....) har efter deres
> ComeBack valgt at klade sig E.L.O. 2 og vil defor
> blive liste 2 gange...
>
> Er det muligt at tilføje noget til SELECT... linien så
> den ser bort fra tallet.
> noget i retning af:
>
> SELECT DISTINCT ... LIKE 'A%' "except if next is a number"

Jeg tror ikke det kan lade sig gøre, men jeg er ikke helt sikker.
Kim Pedersen giver desuden et *meget* godt råd. Relationelle
databaser er vejen til at undgå duplikeringer.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Pelle (25-04-2001)
Kommentar
Fra : Pelle


Dato : 25-04-01 20:45

> >
> > SELECT DISTINCT ... LIKE 'A%' "except if next is a number"
>
> Jeg tror ikke det kan lade sig gøre, men jeg er ikke helt sikker.
> Kim Pedersen giver desuden et *meget* godt råd. Relationelle
> databaser er vejen til at undgå duplikeringer.

Hej igen ...

Tak for alle de gode råd, også til Kim Petersen for opbygningen
af min (kommende nye) database - jeg tror efterhånden jeg har
luret en del ting og er blevet en del klogere. Jeg har ellers købt
bøger om ASP bl.a. fra IDG's forlag "ASP Active Server Pages"
hvilet er en en fin bog men - den koncenterere sig for meget om
VBScript end om advancerede kald til databaser - men bevares,
det er vel også via Access bøger/kurser at man lære "SELECT ... ting"

ASP er jo mange ting og IKKE kun bearbejding af en database,
har jeg efter hånden kommet frem til.

"ASP Active Server Pages" er mere fokuseret på hvordan man
henter/flytter data, end den fortæller om access og dens opbygning
og så lige hvordan man får webserveren til at ligge nogen variabler
sammen.

Endnu engang tak for hjælpen......


Mvh
Peter Jensen





Kim Søvø Pedersen (25-04-2001)
Kommentar
Fra : Kim Søvø Pedersen


Dato : 25-04-01 09:59


> 5 rækker i en tabel, henholdvis "artister", "albums", "skæring",
"melodi",
> "varighed"
>

Hvis jeg var dig ville jeg kigge lidt på relations-databaser og f.eks. lave
følgende:

3 tabeller - Artist, Album, og Tracks (pas på med æ, ø og å i dine
tabelnavne)

Artist ser sådan ud:
ID | Artistnavn

Album ser sådan ud:
ID | ArtistID | Albumnavn ( + totallængde og andre eventuelle felter)

Tracks ser sådan ud:
ID | AlbumID | Tracknummer | Tracknavn | Laengde (+ andre)

Herefter åbner du vinduet "relationer" i Access og opretter følgende
relationer (kig i hjælp hvis du ikke lige kan finde ud af det)

ID (i Artist-tabellen) bindes til ArtistID (i Album-tabellen) i
en-til-mange-relation
ID (i Album-tabellen) bindes til AlbumID (i Tracks-tabellen) i en
en-til-mange-relation

og husk at vælge "gennemtving referentiel integration" og de to-tre andre
ting man kan krydse af. De gør, at når du f.eks. sletter
Aerosmith i Artist-tabellen slettes alle Aerosmit-albums og -tracks
ligeledes, og hvis du sletter et bestemt album slettes alle tracks til dette
album også - så undgår du "løse" poster, som ikke hører til nogen steder...

Husk at ID skal være autonummerering og xxxID (relations-id'erne) skal være
tal - ellers virker det ikke...

God fornøjelse!

Kim



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

Månedens bedste
Årets bedste
Sidste års bedste