Just nu i M3-nätverket
Gå till innehåll

"Det angavs inte någon kommandotext för kommandoob


Lalle

Rekommendera Poster

vad fasen är felet?

 

jag försöker köra några UPDATE fraser med denna kod:

 

while intCounter1 <= intCounter = true

 

set objRecordset = objConnection.Execute(strSql(intCounter1))

intCounter1 = intCounter1 + 1

wend

 

felet som jag får är följande:

 

Microsoft OLE DB Provider for ODBC Drivers (0x80040E0C)

Det angavs inte någon kommandotext för kommandoobjektet.

 

om jag skriver ut den indexerade variabeln "strSql(intCounter1)" så får jag följande:

 

UPDATE tblProdukter SET s = s - 1 WHERE ProduktID = 34

UPDATE tblProdukter SET l = l - 1 WHERE ProduktID = 34

 

någon som har en aning om varför det blir så här?

 

 

Edde

 

 

Länk till kommentar
Dela på andra webbplatser

Jakob Nanneson

Kan man verkligen skriva såhär:

while intCounter1 <= intCounter = true

 

..."or intCounter1", eller nåt, vill jag skriva.

Men det kanske är onödigt?

 

Länk till kommentar
Dela på andra webbplatser

while intCounter1 <= intCounter = true

 

fungerar bra, felet kommer från denna rad:

 

set objRecordset = objConnection.Execute(strSql(intCounter1))

 

men jag tror aldrig jag har sett det felet innan: "Det angavs inte någon kommandotext för kommandoobjektet".

 

vad betyder det egentligen?

 

edde

 

Länk till kommentar
Dela på andra webbplatser

felet ligger här:

 

set objRecordset = objConnection.Execute(strSql(intCounter1))

 

om jag byter ut intCounter1 mot en siffra så fungerar själva satsen och uppdateringen görs. den verkar alltså inte klarar av att ha en indexerad variabel med en räknare inom parantesen i "objConnection.Execute()".

 

alltså

 

objConnection.Execute(strSql(0)) fungerar

objConnection.Execute(strSql(intCounter1)) fungerar inte...

 

vad göra?

 

edde

 

Länk till kommentar
Dela på andra webbplatser

japp den börjar o räkna från noll, upp till intCounter som är antalet strängar som ligger i den indexerade variabeln "strSql()".

 

felet ligger alltså i hur fasen jag ska få den att acceptera följande:

 

objConnection.Execute(strSql(intCounter1))

 

som sagt, objConnection.Execute(strSql(0)) funkar bra, och jag kan byta ut nollan mot en annan siffra.

 

frågan är alltså hur jag ska skriva ovanstående så att den accepterar intCounter1 i uttrycket

 

edde

 

Länk till kommentar
Dela på andra webbplatser

Lägg till en extra sträng före Execute

tex

 

tempstrSql = strSql(intCounter1)

set objRecordset = objConnection.Execute(tempstrSql)

 

och se om det hjälper?

 

(Man kanske måste set tempstrSql = strSql(intCounter1) ? )

 

 

Eller prova

objConnection.CommandText = strSql(intCounter1)

set objRecordset = objConnection.Execute

 

Det är väl den ,CommandText, som avses i felkoden kanske.

 

 

0x--x0

 

[inlägget ändrat 2004-01-17 12:12:23 av 0x2A]

Länk till kommentar
Dela på andra webbplatser

tack för tipsen!

 

jag löste det på ett långt mycket krångligare sätt än så:)

 

jaja livet går vidare

 

tjena!

 

edde

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...