sql-sats funkar med conn.execte men inte med cmd
<b>Denna rad gick utmärkt att köra, med rätt resultat, innan jag försökte plocka in cmd...</b>
"SELECT rakning, -belopp*ggr/12 summa FROM rakningar WHERE `user`=? ORDER BY `rakning` ASC"
<b>men nu får jag ett fel som säger </b>
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.
<b>någon som vet?</b> när jag googlar på felet verkar som att man inte kan göra allt med cmd objektet, som man kan med en vanlig conn.execute... men jag har skrivit om den så enkel som möjligt och får fortfarande samma fel...
sql="SELECT * FROM rakningar WHERE `user`= ? ORDER BY `rakning` ASC"
cmd.CommandText = sql
set rs = cmd.execute (,array(session("user")))
Svara
Sv: sql-sats funkar med conn.execte men inte med cmd
Jag förstår att du vill ha hjälp, men spamma inte. Det räcker att posta under ett forum.
Sedan undrar jag om du kollar upp saker och ting innan du frågar?
Svara
Sv:sql-sats funkar med conn.execte men inte med cmd
Vad är att spamma? De två frågorna jag har runt cmd är som du ser helt olika SQL satser, som i och för sig genererar likartade fel. Är det att spamma enligt dig?
Svara
Sv: sql-sats funkar med conn.execte men inte med cmd
Du kanske Explecit måste ange parametrarna. Vilken datatyp är User, int eller varchar?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | Dim p Dim rs Dim cmd Dim con Const adCmdText = 1 Const adOpenForwardOnly = 0 Const adLockOptimistic = 3 Const adInteger = 3 Const adParamInput = 1 Set con = CreateObject( "ADODB.Connection" ) con.Open Application( "ConnectionString" ) Set cmd = CreateObject( "ADODB.Command" ) Set cmd.ActiveConnection = con cmd.CommandType = adCmdText cmd.CommandText = "SELECT rakning, -belopp*ggr/12 AS summa" + vbCrLf + _ "FROM rakningar" + vbCrLf + _ "WHERE user = ?" + vbCrLf + _ "ORDER BY rakning ASC" Set p = cmd.CreateParameter( "@user" , adInteger, adParamInput, , Session( "user" )) cmd.Parameters.Append p Set rs = CreateObject( "ADODB.Recordset" ) rs.Open cmd, , adOpenForwardOnly, adLockOptimistic Do Until rs.EOF 'Do stuff rs.MoveNext Loop rs.Close Set rs = Nothing Set cmd.ActiveConnection = Nothing Set cmd = Nothing con.Close Set con = Nothing |
Denna koden är testad mot en Access databas.
Skulle kunna vara mySQL ODBC drivrutin som strular.
Svara