17. december 2001 - 13:52Der er
17 kommentarer og 1 løsning
Træls fejl....sikkert nem at løse...
...men jeg har stirret mig blind på den:
Jeg vil indsætte nogle data i en accessdatabase, men jeg får denne fejlmelding:
Technical Information (for support personnel)
Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. /Support-NY/gemnykunde.asp, line 12
gemnykunde.asp er her:
<% RESPONSE.BUFFER=\"True\" %> <!-- Forbindelsen til databasen --> <% DIM CONNECT, ONGemNye SET CONNECT = SERVER.CREATEOBJECT(\"ADODB.CONNECTION\") CONNECT.OPEN \"DRIVER={Microsoft ACCESS DRIVER (*.MDB)}; DBQ=\" & Server.MapPath (\"al-dente.MDB\") %> <!-- Herunder foregår selve indsættelsen i databasen --> <% SET ONGemNye = CONNECT.EXECUTE (\"INSERT INTO kunder (DNKundenr, Navn, tlf, email, Hotline, Version, Antal, Kommentar) VALUES (\"+ REQUEST.form(\"DNKundenr\")+\",\'\"+ REQUEST.form(\"Navn\")+\"\',\'\"+ REQUEST.form(\"tlf\")+\"\',\'\"+ REQUEST.form(\"email\")+\"\',\'\"+ REQUEST.form(\"Hotline\")+\"\',\'\"+ REQUEST.form(\"Version\")+\"\',\"+ REQUEST.form(\"Antal\") +\",\'\"+ REQUEST.form(\"Kommentar\") +\"\')\") %> <!-- Herunder udføres redirect --> <% RESPONSE.REDIRECT(\"succes.htm\") %>
Min tabel kunder i min database al-dente er opbygget således:
DNKundenr number - required Navn text - required tlf text - required email text - Hotline yes/no - required Version text - Antal number - Kommentar memo -
Er der nogen der kan hjælpe mig med at få løst min fejl?
Du skal konvertere værdier fra Request.Form(\"DNKundeNr\") med fx. cInt(Request.Form(DNKundeNr)) for at være sikker på, at de bliver behandlet som Integer værdier.
euhp >> det er ikke nødvendig å konvertere verdiene fra request streamen til tall for å skulle kunne sette dem inn i en SQL. En SQL er ikke annet enn en streng uansett, og datatypen til en kolonne blir definert ved å omslutte verdien med \'\' hvis det er en tekstverdi eller ingenting hvis kolonnen er numerisk.
martin181 >> du benytter + til å konkatinere din streng. i VBScript så skal du bruke &...prøv denne:
Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. /Support-NY/gemnykunde.asp, line 12
hmmm...det er høyst sannsynlig din \'hotline\' kolonne som skaper problemer. jeg husker ærlig talt ikke hvordan man setter inn boolske verdier i en access database, men prøv å fjern \'\' rundt REQUEST.form(\"Hotline\")
Hmm...jeg prøvede at fjerne \'\' rundt om det, nu lykkedes det, men kun hvis jeg har afmærket min hotline...ellers er fejlen:
Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement. /Support-NY/gemnykunde.asp, line 12
Og jeg vil jo også godt kunne oprette kunder uden hotline
den skal jo være yes/no eller true/false !!?? kolonnen heter Yes/no, så det er jo rimelig enkelt å regne ut at den verdi du prøver å putte inn i kolonnen skal være det samme.. ??
hvis den ikke er avkrysset, så vil du jo prøve å sette inn en tom verdi i den kolonnen og det går jo ikke...du er nødt til å sjekke for om den er krysset av eller ikke og så sette inn on/off, yes/no eller true/false alt ettersom...
jeg lukker spm, jeg prøver noget andet, det sidste lykkedes ikke
Synes godt om
Ny brugerNybegynder
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.