tags:

views:

3704

answers:

5

I need to process mysql data one row at a time and i have selected all rows put them in a tuple but i get the error above.

what does this mean and how do I go about it?

+7  A: 
  1. Provide some code.
  2. You probably call some function that should update database, but the function does not return any data (like cursor.execute()). And code:

    data = cursor.execute()

    Makes data a None object (of NoneType). But without code it's hard to point you to the exact cause of your error.

Abgan
+4  A: 

It means that the object you are trying to iterate is actually None; maybe the query produced no results?
Could you please post a code sample?

Paolo Tedesco
+4  A: 

The function you used to select all rows returned None. This "probably" (because you did not provide code, I am only assuming) means that the SQL query did not return any values.

Dan
A: 

Try using the cursor.rowcount variable after you call cursor.execute(). (this code will not work because I don't know what module you are using).

db = mysqlmodule.connect("a connection string")
curs = dbo.cursor()
curs.execute("select top 10 * from tablename where fieldA > 100")
for i in range(curs.rowcount):
  row = curs.fetchone()
  print row

Alternatively, you can do this (if you know you want ever result returned):

db = mysqlmodule.connect("a connection string")
curs = dbo.cursor()
curs.execute("select top 10 * from tablename where fieldA > 100")
results = curs.fetchall()
if results:
  for r in results:
    print r
jcoon
A: 

This error means that you are attempting to loop over a None object. This is like trying to loop over a Null array in C/C++. As Abgan, orsogufo, Dan mentioned, this is probably because the query did not return anything. I suggest that you check your query/databse connection.

A simple code fragment to reproduce this error is:

x = None

for each i in x: #Do Something pass

batbrat