<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Daniele Varrazzo ha scritto:
<blockquote cite="mid:47A447C6.2040603@develer.com" type="cite">
<pre wrap="">Crash Override ha scritto:
</pre>
<blockquote type="cite">
<pre wrap="">Buongiorno.
Dopo aver letto sulla documentazione la giusta sintassi per inserire una
stringa 'esterna' in una query MySQL con Python, scrivo (in un'oppurtuna
funzione):
</pre>
</blockquote>
<pre wrap=""><!---->
Ciao,
aiuterebbe avere un po' più di contesto, ricordatene quando chiedi una mano :)
Manda un paio di righe in più della funzione di cui parli: non solo la stringa
SQL ma anche come la usi, perché il problema è (anche) lì.
</pre>
<blockquote type="cite">
<pre wrap="">'''select qualcosa from qualcosaltro WHERE qualcosa = % (nomeStringa) s'''
</pre>
</blockquote>
<pre wrap=""><!---->
di sicuro gli spazi in '% (nomeStringa) s' non servono. Questo non viene
riconosciuto come segnaposto. Scrivi '%(nomeStringa)s'.
</pre>
<blockquote type="cite">
<pre wrap="">dove nomeStringa lo prendo da un EvtText di una TextCtrl. Ecco... la
query non dà rsultati! Il nome (nomeStringa) esiste perchè se lo scrivo
io all'interno della query funziona! Inoltre ho provato a far stampare
in un wx.dialog il testo della TextCtrl: è tutto 'regolare'. Il problema
qualè? La TextCtrl aggiunge qualcosa che devo 'opportunamete' eliminare?
Non mi sembra...
La stringa è presa da una funzione EvtText(evt) come evt.GetString().
</pre>
</blockquote>
<pre wrap=""><!---->
Cos'è nomeStringa? Il nome di una variabile locale? Dovrebbe essere la chiave
di un dizionario passato come secondo argomento al metodo execute() del
cursore. Per intenderci da te ci si aspetta:
cnn = MySQLdb.connect(dsn)
cur = cnn.cursor()
sql = '''select qualcosa from qualcosaltro
WHERE qualcosa = %(nomeStringa)s'''
args = { 'nomeStringa': 'mio valore' }
cur.execute(sql, args)
for record in cur:
...
</pre>
</blockquote>
Ok, man mano faccio progressi da solo. Format requires a mapping,
traduzione: "Imbecille stai usando una formattazione da dizionario per
una stringa!"<br>
Bene. Ma io non voglio usare un dizionario, voglio usare una semplice
stringa! Devo cambiare il paramstyle? Come?<br>
<br>
Sempre Grazie<br>
<br>
P<br>
</body>
</html>