2017-10-06 4 views
0

Je reçois le message d'erreur suivant lorsque vous essayez d'exécuter une requête de curseur sur une base de données SQLite3: enter image description herePourquoi la requête Django connection.cursor échoue-t-elle?

Mon code est le suivant:

qry = ('select balancer_security.id, balancer_security.name, balancer_security.symbol, ' 
      'balancer_securityprice.at_dt, balancer_securityprice.price, balancer_securityprice.notes ' 
      'from balancer_security LEFT OUTER JOIN balancer_securityprice ' 
      'ON (balancer_security.id = balancer_securityprice.security_id ' 
      'AND balancer_securityprice.at_dt="?") ' 
      # 'AND balancer_securityprice.at_dt="%s") ' 
      'ORDER BY balancer_security.name') 
    from django.db import connection 
    cursor = connection.cursor() 
    cursor.execute(qry, [date]) 
    solution = cursor.fetchall() 

L'erreur se produit sur la ligne de cursor.execute. Date est une chaîne contenant la valeur 2017-10-05

En outre, le paramètre est mis dans la requête au sein django ou est-il passé à SQLite (ce devrait être% s ou mon espace réservé paramètre?)?

Merci!

+0

'% s' devrait résoudre votre problème. L'as tu essayé? –

+0

Merci pour la suggestion mais% s entraîne l'erreur suivante: ProgrammingError at/balancer/set_security_prices/2017-10-05 Nombre de liaisons incorrect fourni. L'instruction actuelle utilise 0 et il y en a 1 fournies. – Ben

+1

Est-ce que vous faites ceci '"% s "' ou ce '% s'. Utilisez-le sans citation –

Répondre

1

Utilisez-le simplement sans guillemets. Remplacez "%s" par %s.