Avatar billede netro Nybegynder
29. januar 2004 - 18:10 Der er 8 kommentarer og
3 løsninger

Multiple-step OLE DB operation generated errors

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.

Jeg modtager ovenstående fejl (specielt efter installation af ver. 4.0.17), når nedenstående afvikles.

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=xxx; UID=yyy; PWD=zzz; OPTION=16834;")

Set rs = Conn.Execute("Select Felt1, Felt2, Felt3 From Tabel Where Felt4=xx")

Str = rs("Felt2") '<----- Linien giver fejlen, når feltet er null
Avatar billede steen Nybegynder
29. januar 2004 - 20:08 #1
Har du prøvet med:
Str = rs.Fields("Felt2").Value
Avatar billede netro Nybegynder
29. januar 2004 - 22:36 #2
Giver ikke bonus...
Avatar billede netro Nybegynder
29. januar 2004 - 22:46 #3
Det kan løses med:

Set rs = Conn.Execute("Select Felt1, Concat('', Felt2) As Felt2, Felt3 From Tabel Where Felt4=xx")

- men det er ikke en pæn løsning, synes jeg...
Avatar billede eagleeye Praktikant
29. januar 2004 - 23:20 #4
Jeg må sige jeg har ikke set fejlen når man trækker data ud, men har set den nogle gange med mySQL når man vil ligge data i et recordset.

Har du prøvet sådan her, eller fejler den også? Det er måske heller ikke den fedeste løsning..

if not isNull(rs("Felt2")) then Str = rs("Felt2")
Avatar billede eagleeye Praktikant
29. januar 2004 - 23:29 #5
Eller prøv at rette din conenction til option=3 og ikke 16834:

"Driver={MySQL ODBC 3.51 Driver}; Server=servername; Database=dbname; UID=username; PWD=password; Option=3"

Kilde: http://forums.quadrahosting.com.au/index.php?showtopic=77
Avatar billede netro Nybegynder
30. januar 2004 - 05:01 #6
Ja, jeg ved, at der kan opstå fejl i den omvendte situation: rs("Felt") = Str

Anvender jeg IsNull(rs("Felt")) returneres falsk, da fortolkeren åbenbart ikke mener, at det er en nulværdi.
Bruger jeg så i stedet Trim("" & rs("Felt")), får jeg samme fejl.

Jeg har allerede prøvet begge option-værdier.
"16834" ændrer ikke på noget. "3" giver fejlen andre steder, hvor jeg også overfører et TEXT-felt til en variabel på samme måde, som normalt fungerer fint.
Avatar billede netro Nybegynder
02. februar 2004 - 17:23 #7
Skal jeg lukke her?
Avatar billede eagleeye Praktikant
02. februar 2004 - 22:55 #8
tja det kan du vel godt

Jeg har ikke fundet mere og hvis den giver false når den er Null så ved jeg næsten ikke hvordan man så gør.
Jeg har fundet denne connetion til VB her:
http://www.vbmysql.com/samplecode/simpleinsert.html

    conn.CursorLocation = adUseClient
    conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
            & "SERVER=127.0.0.1;" _
            & "DATABASE=test;" _
            & "UID=testuser;" _
            & "PWD=12345;" _
            & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384
Avatar billede netro Nybegynder
03. februar 2004 - 06:58 #9
Jeg afprøver den lige lidt senere.
Avatar billede netro Nybegynder
03. februar 2004 - 19:19 #10
Det giver intet desværre. Jeg bliver nødt til at bruge concat-hacket.

Skal vi dele?
Avatar billede eagleeye Praktikant
04. februar 2004 - 18:34 #11
Ja, men det bestemmer du :)
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