Avatar billede jmc Nybegynder
17. januar 2002 - 17:08 Der er 36 kommentarer og
1 løsning

hvor opdatere den ikke?

File.ExtractFileName giver et filnavn men er sql strSQL = \"Insert into imgsrc (File.ExtractFileName)\" skrevet forkert ?

<%
\' 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(\"c:\\www\\domain.dk\\db\\test.mdb\")
Conn.Open DSN

\' SQL sætning opbygges
strSQL = \"Insert into imgsrc (File.ExtractFileName)\"

\' SQL sætning eksekveres
Conn.Execute(strSQL)

\' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede jmc Nybegynder
17. januar 2002 - 17:28 #1
er dette ikke rigtigt ?

strSQL = \"Insert into imgsrc (Filenavn)\"

fejlen er:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
Avatar billede jmc Nybegynder
17. januar 2002 - 17:32 #2
min tabel hedder \'side\' og min record \'imgsrc\'

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath(\"c:\\www\\domain.dk\\db\\test.mdb\")
Conn.Open DSN   

strSQL = \"Insert into imgsrc (filnavn)\"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>

fejlen:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
Avatar billede coltau Juniormester
17. januar 2002 - 21:21 #3
Sætningen skal være således:

strSQL = \"Insert into imgsrc (filnavn) values (\" & File.ExtractFileName & \");\"

hvor jeg går ud fra at feltet hedder: filnavn og værdien fås ved funktionen: File.ExtractFileName

Avatar billede jmc Nybegynder
17. januar 2002 - 21:45 #4
***Jeg benytter:
For Each File in Upload.Files
    filnavn = File.ExtractFileName
Next

og
strSQL = \"Insert into imgsrc (filnavn) values (\" & File.ExtractFileName & \");\"

***men fejlen er:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Invalid use of \'.\', \'!\', or \'()\'. in query expression \'GuidenLogo(1).jpg\'.

/asp_upload/Upload.asp, line 50


***her hele scriptet:

<%@LANGUAGE=\"VBSCRIPT\"%>

<%
Set Upload = Server.CreateObject(\"Persits.Upload.1\")
\'Upload.IgnoreNoPost = True

\' Upload files
Upload.OverwriteFiles = False \' Generate unique names
Upload.SetMaxSize 1048576 \' Truncate files above 1MB
Upload.save \"c:\\www\\domain.dk\\www\\billeder\\\" & request(\"user\")
\'Upload.SaveVirtual \"../billeder/\" & request(\"user\") \' Save to data directory

For Each File in Upload.Files
    filnavn = File.ExtractFileName
Next

%>


<%
\' Databaseforbindelse - husk at angive sti til din database

    Set Conn = Server.CreateObject(\"ADODB.connection\")
    Conn.ConnectionString = \"DRIVER={Microsoft Access Driver (*.mdb)};\" & _
    \"DBQ=c:\\www\\domain.dk\\db\\test.mdb\"
    Conn.Open
   

\' SQL sætning opbygges
\'strSQL = \"Insert into imgsrc (filnavn)\"
strSQL = \"Insert into imgsrc (filnavn) values (\" & filnavn & \");\"

\' SQL sætning eksekveres
Conn.Execute(strSQL)

\' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>


<script language=\"JavaScript\">
window.opener.document.images[\'pict\'].src = request(\"imgsrc\")
self.close();
</script>

Avatar billede coltau Juniormester
17. januar 2002 - 22:01 #5
Jeg skal lige ha\' det rigtigt. !
Hvis alle filnavne skal gemmes i hver sin record så skal koden omkring insert se således ud.

For Each File in Upload.Files
  filnavn = File.ExtractFileName
  strSQL = \"Insert into imgsrc (filnavn) values (\'\" & filnavn & \"\');\"
  Conn.Execute(strSQL)
Next

ellers går den nye fejlmeddelelse på at der mangler plinger omkring værdien. Den rigtige sætning ser således ud:

  strSQL = \"Insert into imgsrc (filnavn) values (\'\" & filnavn & \"\');\"

Avatar billede jmc Nybegynder
18. januar 2002 - 06:59 #6
Der er kun en fil eller et filnavn!
linie 50 = Conn.Execute(strSQL)


FEJL:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression \'120x90.gif\'.

/asp_upload/Upload.asp, line 50
Avatar billede coltau Juniormester
18. januar 2002 - 10:48 #7
Jeg er med.

Hvordan ser linie 50 ud nu. !
Avatar billede jmc Nybegynder
18. januar 2002 - 11:57 #8
Som jeg skriver tidligere:
linie 50 =
Conn.Execute(strSQL)
Avatar billede coltau Juniormester
18. januar 2002 - 13:54 #9
Det er klat - det var linien der danner strSql jeg skal se.
Avatar billede jmc Nybegynder
18. januar 2002 - 13:57 #10
strSQL = \"Insert into imgsrc (filnavn) values (\" & filnavn & \");\"
Avatar billede jmc Nybegynder
18. januar 2002 - 13:59 #11
jeg kan ikke SQL

strSQL skal være lig med \"Insert (mit filnavn) into colum IMGSRC i tabel data where ID = request(\"id\")\"
Avatar billede coltau Juniormester
18. januar 2002 - 14:20 #12
Som jeg skrev tidligere - der mangler plinger/apostroffer.

Sådan:

strSQL = \"Insert into imgsrc (filnavn) values (\'\" & filnavn & \"\');\"
Avatar billede jmc Nybegynder
18. januar 2002 - 14:44 #13
Jeg tror vi nærmer os: (jeg  hæver point!)
imgsrc er en \'colum\' i tabellen \'side\'

fejl:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e37\'

[Microsoft][ODBC Microsoft Access Driver] Could not find output table \'imgsrc\'.

/asp_upload/Upload.asp
Avatar billede jmc Nybegynder
18. januar 2002 - 14:53 #14
Jeg tror at det muligvis kan være noget i retning af :

strSQL = \"Insert into side.imgsrc (filnavn) values (\'\" & filnavn & \"\')\" & _
WHERE id = \" + Request(\"id\") + \"\";\" 

men den giover fejl:

WHERE id = \" + Request(\"id\") + \"\";\"
------^
Avatar billede coltau Juniormester
18. januar 2002 - 15:46 #15
Så skal sætningen se således ud.

strSQL = \"Insert into side (imgsrc) values (\'\" & filnavn & \"\') WHERE id=\" & Request.QueryString(\"id\") & \";\" 

Hvis ID er med i URL-en som URL.asp?ID=??

Men forstår jeg det korrekt at du vil gemme filnavnet i databasen. (og forhåbenligt ikke billedet.)
Avatar billede jmc Nybegynder
18. januar 2002 - 15:54 #16
Nu siger den:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Missing semicolon (;) at end of SQL statement.

/asp_upload/Upload.asp, line 34

linie 34 er: Conn.Execute(strSQL)
Avatar billede coltau Juniormester
18. januar 2002 - 16:05 #17
Der var jeg lige hurtig nok - jeg kan se at der mangler en parantes før ;

strSQL = \"Insert into side (imgsrc) values (\'\" & filnavn & \"\') WHERE id=\" & Request.QueryString(\"id\") & \");\" 
Avatar billede jmc Nybegynder
18. januar 2002 - 16:14 #18
Sorry, jeg er en ged til at finde ud af dette her:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Missing semicolon (;) at end of SQL statement.

/asp_upload/Upload.asp, line 34

det er altså med:
strSQL = \"Insert into side (imgsrc) values (\'\" & filnavn & \"\') WHERE id=\" & Request.QueryString(\"id\") & \");\"

Du kan prøve at gå ind i www.webgalleri.dk klik login og benyt test test til bruger & pass klik på billedet i udstillingen 2 gange for at komme til rediger.
Avatar billede coltau Juniormester
18. januar 2002 - 17:15 #19
det ser godt ud: www.webgalleri.dk

Er koden til denne side. ?

Og er der flere problemer. ?
Avatar billede jmc Nybegynder
19. januar 2002 - 01:58 #20
Desværre stadigt en fejl:

Du kan prøve at gå ind i www.webgalleri.dk klik login og benyt test test til bruger & pass klik på billedet i udstillingen 2 gange for at komme til rediger.


Fejlen er:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Missing semicolon (;) at end of SQL statement.

/asp_upload/Upload.asp, line 34

det er altså med:
strSQL = \"Insert into side (imgsrc) values (\'\" & filnavn & \"\') WHERE id=\" & Request.QueryString(\"id\") & \");\"

Avatar billede jmc Nybegynder
19. januar 2002 - 09:39 #21
har du en ide hvorfor den stadigt melder?

Missing semicolon (;) at end of SQL statement/asp_upload/Upload.asp, line 34

Avatar billede coltau Juniormester
19. januar 2002 - 17:06 #22
Prøv at fjerne den sidste parantes.

strSQL = \"Insert into side (imgsrc) values (\'\" & filnavn & \"\') WHERE id=\" & Request.QueryString(\"id\") & \";\"

Avatar billede jmc Nybegynder
19. januar 2002 - 19:46 #23
er uploaded nu, men giver den samme fejl ?
Avatar billede coltau Juniormester
19. januar 2002 - 21:00 #24
Jeg kan ikke se en fejl i linien - den er korrekt - med mindre feltet, id i databasen ikke er af typen tal. ?

Ellers kan du undlade linien:

Conn.Execute(strSQL)

og skrive denne i stedet for.

Response.Write(srtSql)

så vil selve SQL-kommandoen blive skrevet på skærmen før den udføres - hvis jeg kan se denne linie er det lettere at finde fejlen.
Avatar billede jmc Nybegynder
20. januar 2002 - 10:38 #25
Response.Write(\"sql er:\" & strSQL) siger:

Insert into side (imgsrc) values (\'billabongbund.jpg\') WHERE id=15);

sql:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Missing semicolon (;) at end of SQL statement.

/asp_upload/Upload.asp, line 33


men der opdateres ikke
Avatar billede coltau Juniormester
20. januar 2002 - 14:33 #26
Parentesen til sidst er ikke fjernet. (som jeg nævnte tidligere) Den rigtige sætning er:

strSQL = \"Insert into side (imgsrc) values (\'\" & filnavn & \"\') WHERE id=\" & Request.QueryString(\"id\") & \";\"

Sæt den ind og lad os se. !
Avatar billede jmc Nybegynder
20. januar 2002 - 16:17 #27
done og jeg udskriver den også:

sql er:Insert into side (imgsrc) values (\'billabongbund.jpg\') WHERE id=15;
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Missing semicolon (;) at end of SQL statement.

/asp_upload/Upload.asp, line 35
Avatar billede coltau Juniormester
20. januar 2002 - 16:52 #28
Så er jeg lost. !

Vil du vise de par linier fra koden der har med sql-sætningen og gøre. Tag et par ekstra linier med for at være sikker.
Avatar billede jmc Nybegynder
21. januar 2002 - 12:21 #29
<%
\' Databaseforbindelse - husk at angive sti til din database

    Set Conn = Server.CreateObject(\"ADODB.connection\")
    Conn.ConnectionString = \"DRIVER={Microsoft Access Driver (*.mdb)};\" & _
    \"DBQ=c:\\www\\webgalleri.dk\\db\\galleri.mdb\"
    Conn.Open
   

\' SQL sætning opbygges
\'strSQL = \"Insert into imgsrc (filnavn)\"
strSQL = \"Insert into side (imgsrc) values (\'\" & filnavn & \"\') WHERE id=\" & Request.QueryString(\"id\") & \";\"
\'strSQL = \"Insert filnavn into imgsrc WHERE id = \" + Replace(rs__MMColParam, \"\'\", \"\'\'\") + \"\"

\' SQL sætning eksekveres

Response.Write(\"sql er:\" & strSQL)
Conn.Execute(strSQL)

\' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede coltau Juniormester
21. januar 2002 - 12:55 #30
Jeg kan ikke se en eneste fejl.
Er feltet: ID et tekstfelt. ?
Avatar billede jmc Nybegynder
21. januar 2002 - 13:33 #31
den er sat til autonummering
Avatar billede jmc Nybegynder
21. januar 2002 - 13:34 #32
skal jeg sende dig databasen og dokumenterne?
Avatar billede coltau Juniormester
21. januar 2002 - 14:05 #33
Ja - nu begynder det efterhånden at blive interessant.
Avatar billede jmc Nybegynder
21. januar 2002 - 14:33 #34
til hvilken email?
Avatar billede coltau Juniormester
21. januar 2002 - 15:28 #35
Selvfølgelig. !
Til claus@coltau.dk
Avatar billede coltau Juniormester
21. januar 2002 - 20:09 #36
Hvordan kan man overse sådan en fejl. Man kan ikke anvende SQL-kommandoen INSERT sammen med WHERE.

De rigtige linier skal være følgende.

\' SQL sætning opbygges
strSQL = \"select ID from side WHERE id=\" & Request.QueryString(\"id\")
Set RS = Conn.Execute(strSQL)
if RS.EOF then \' ID findes ikke
  strSQL = \"Insert into side (imgsrc) values (\'\" & filnavn & \"\');\"
else \' ID findes allerede
  strSQL = \"update side set imgsrc=\'\" & filnavn & \"\' WHERE id=\" & Request.QueryString(\"id\") & \";\"
end if

Mvh.
Claus Coltau
Avatar billede jmc Nybegynder
21. januar 2002 - 20:34 #37
takker mange gange for hjælpen
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