Avatar billede madd Nybegynder
19. maj 2001 - 00:21 Der er 8 kommentarer og
2 løsninger

Hvorfor denne fejl?

Hvorfor får jeg denne fejl?

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

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

/default.asp, line 16


Min kode ser således ud:

tempConn = \"driver={MySql};server=\"& SQLserveradr &\";database=\"& SQLdatabase &\";uid=\"& SQLlogin &\";pwd=\"& SQLpassword
    Set rs = Server.CreateObject(\"ADODB.RecordSet\")
    strSQL = \"SELECT  * FROM Visitors WHERE (ID = 0)\"
    rs.Open strSQL, tempConn, adOpenKeyset, adLockOptimistic
    If (rs.BOF Or rs.EOF) Then
        rs.AddNew
        rs(\"IP\") = Request.ServerVariables(\"REMOTE_ADDR\")
        rs(\"Date\") = Date() &\"\"
        rs(\"Time\") = Time() &\"\"
        rs.Update
    End If
    rs.Close
    Set rs = Nothing


/Mattias
Avatar billede erikjacobsen Ekspert
19. maj 2001 - 00:25 #1
Brug en \"INSERT INTO ...\" i stedet for med MySql. Du er muligvis havnet
i et problem med feltbredder. ADO-metoden (rs.AddNew) kan bestemt
ikke anbefales til MySql
Avatar billede madrich Nybegynder
19. maj 2001 - 00:27 #2
plejer man ikke at bruge set rs = tempConn.execute(strSql)

Avatar billede madrich Nybegynder
19. maj 2001 - 00:30 #3
Ok --> erik, korrekt!

dit Resultat bliver noget ala

strSQL = \"Insert Into _Tabelnavn_ set (kolonne1,kollonne2,kollone3) values (Værdi1,Værdi2,værdi3)\"

OG SÅ

tempConn.execute(strSql)

Avatar billede madrich Nybegynder
19. maj 2001 - 00:31 #4
Erik, kan det nogensinde betale sig at bruge Addnew, er det ikke noget med først åbne basen hente data, derefter sætte data ind (lyder lidt som dobbelt-konfekt!)
Avatar billede erikjacobsen Ekspert
19. maj 2001 - 00:38 #5
Man får hentet én record over - mindst - og det er da nok overflødigt,
men hvad - livet er i forvejen for kort til ASP :)
Avatar billede madrich Nybegynder
19. maj 2001 - 00:40 #6
Livet er generelt for kort, men hvorfor brokke sig når man - en fredag aften - har tid til at klikke rundt på eksperten (livet er også for kort til PHP)
Avatar billede madrich Nybegynder
19. maj 2001 - 00:41 #7
:)
Avatar billede madd Nybegynder
19. maj 2001 - 01:22 #8
Jeg har forsøgt med INSERT INTO blabla sætningen, men det gav OGSÅ fejl...!
Avatar billede madrich Nybegynder
19. maj 2001 - 01:39 #9
Må vi se din streng?
Avatar billede ricardo Nybegynder
19. maj 2001 - 15:04 #10
Ændre disse linier:

  strSQL = \"SELECT  * FROM Visitors WHERE (ID != 0)\"

Så har du ikke brug for din condition:

  If (rs.BOF Or rs.EOF) Then

  ...

  End If

- og hvordan skal du iøvrigt kunne bruge et recordset objekt der er .eof eller .bof...?

btw: ADO\'s metode er langsommere ennd SQL, men du får ikke bøvl med at skulle kontvertere pling\'er, osv...
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