maestroQC wrote:
Hi,Its one of those days. I cannot solve this. Any help would be greatly appreciated! When I execute this: class Db(object): def insertAccount(self, date, accountNumber, description, openingBalance): dec = decimal.Decimal(openingBalance) db = MySQLdb.connect(host="localhost", user="dumb", passwd="dumber", db="rdc") cursor = db.cursor() cursor.execute("INSERT INTO es_accounts (dateCreated, accountNumber, description, openingBalance) VALUES (%s, %s, %s, %d)", (date, accountNumber, description, dec)) I get this error: Traceback (most recent call last): File "main.py", line 59, in <module> main() File "main.py", line 40, in main dbObj.insertAccount(dateTo, item[0], item[1], item[8]) File "C:\projects\workspace\INYR_ES_0.1\src\db.py", line 19, in insertAccount cursor.execute("INSERT INTO es_accounts (dateCreated, accountNumber, description, openingBalance) VALUES (%s, %s, %s , %d)", (date, accountNumber, description, dec)) File "c:\python25\lib\site-packages\MySQLdb\cursors.py", line 151, in execute query = query % db.literal(args) TypeError: int argument required My table is defined as: CREATE TABLE es_accounts ( id int(6) not null auto_increment, dateCreated date DEFAULT '0000-00-00', accountNumber int(6) not null, description varchar(255) not null, openingBalance decimal(15,8) NOT NULL DEFAULT 0.00000000, primary key (id) ); TIA
The problem is your %d in Values, and then using a Decimal type to feed it. Depending on the type of your openingBalance field, you may want to change the %d to %s, or change dec to int(dec), or change the %d to %f and change dec to float(dec). My experience with the Decimal type is limited, so there may be other options as well.
~Ethan -- http://mail.python.org/mailman/listinfo/python-list
