Seite 1 von 1

TypeError: not all arguments converted during string formatt

Verfasst: Donnerstag 16. Dezember 2010, 15:18
von didley
Ich erhalte bei einer Abfrage imme den Hinweis
TypeError: not all arguments converted during string formatting
Vieles habe ich schon probiert und weiss nun nicht mehr weiter. Wer kann mir hierbei helfen?

Code: Alles auswählen

       n_field_name = 'PPS'

        cursor_req.execute("SELECT ticket.id, ticket.type, ticket.summary, ticket.status, ticket_custom.value, "
        "ticket_custom.name FROM "
        "ticket_custom INNER JOIN ticket ON (ticket_custom.ticket = ticket.id) "
        "WHERE ticket.type ='requirement' AND ticket_custom.name ='project' AND ticket_custom.value='%s' "
        "ORDER BY ticket_custom.value, ticket.summary", (n_field_name,))
didley

Re: TypeError: not all arguments converted during string for

Verfasst: Donnerstag 16. Dezember 2010, 16:05
von ws
Hallo didley,

die Frage ist, mit was für einem Framework/welchem API Du da gerade arbeitest. Woher kommt das

Code: Alles auswählen

cursor_req.execute(
?

Gruss

Wolfgang

Re: TypeError: not all arguments converted during string for

Verfasst: Donnerstag 16. Dezember 2010, 16:14
von ws
Vielleicht kannst Du einfach erstmal ein Statement als normalen String erzeugen und dann in das execute(...) stecken (s.u.)?

Code: Alles auswählen

n_field_name = 'PPS'
stmt = (
    "SELECT ticket.id, ticket.type, ticket.summary, ticket.status, ticket_custom.value, "\
    "ticket_custom.name FROM "\
    "ticket_custom INNER JOIN ticket ON (ticket_custom.ticket = ticket.id) "\
    "WHERE ticket.type ='requirement' AND ticket_custom.name ='project' AND ticket_custom.value='%s' "\
    "ORDER BY ticket_custom.value, ticket.summary" % n_field_name
    )
cursor_req.execute(stmt)

Re: TypeError: not all arguments converted during string for

Verfasst: Donnerstag 16. Dezember 2010, 18:31
von didley
Hallo ws,

vielen Dank. Die Abfrage als string funktioniert. Ich hatte das auch schon probiert. Allerdings ohne Zeilenumbrüche. Ich hätte mir 9 Stunden Arbeit sparen können, wenn ich mich gleich an das Forum gewandt hätte. Ein Hoch auf das Forum. :P

Zur Information: Ich arbeite mit der Trac SQL Database API.

Das

Code: Alles auswählen

cursor_req.execute
kommt zustande durch

Code: Alles auswählen

        # DB look-up
        db = self.env.get_db_cnx()
        cursor_req = db.cursor()
Danke ws

didley