Üdv a lenti kód windows alatt működik Raspberry-n nem, miért lehet az oka?
def RunStoredProcessSelectQuery(self,StoredProcessName, argumentsList):
i=0
mycursor = self.mydb.cursor(dictionary=True)
sql = "Call "+StoredProcessName+ " ("
if len(argumentsList)>0:
for x in range(len(argumentsList)):
sql+="'"+str(argumentsList[x])+"',"
sql=sql+")"
sql=sql.replace(",)",")")
mycursor.execute(sql)
myresult = mycursor.fetchall()
return myresult;
Ha a legenerált sql-t lefuttatom phpmyadminba, akkor dobja az eredményt!
"A mysql könyvtár verziót hogy tudom lekérdezni (nem vagyok egy linux guru)"
Konzolban kiadod a
pip3 list
parancsot - az kilistázza az összes, Pythonhoz feltelepített modult.
Közben próbálgattam, és arra jöttem rá, hogyha ugye a stored procedure-t hívom a call-al akkor kiír egy hibát és szól hogy adjam meg plusz paraméterbe a multi=True-t! na most ha ezt bent hagyom egy sima select * from table lekérdezésbe, akkor ugyan úgy nem dob semmit a lekérdezésbe. Lehet hogy az a paraméter kavar be valamit?
(A mysql verzió ugyan az)
Esetleg karakterkódolási eltérés is lehet. Vannak pl. ékezetes betűk a lekérésben?
Az sql sztringet irasd ki a küldés előtt, hogy az hogy néz ki pontosan.
Amit találtam:
"SQL syntax for prepared statements does not support multi-statements (that is, multiple statements within a single string separated by ; characters).
To write C programs that use the CALL SQL statement to execute stored procedures that contain prepared statements, the CLIENT_MULTI_RESULTS flag must be enabled. This is because each CALL returns a result to indicate the call status, in addition to any result sets that might be returned by statements executed within the procedure."
+ [link]
A Pythonnak ugyanaz a kliens oldali adatbázis-motorja a két rendszeren?
így már adott eredményt:
results = c.execute(query, multi=True)
for cur in results:
print('cursor:', cur)
if cur.with_rows:
print('result:', cur.fetchall())
conn.commit()
Ugye ennek az a hátránya a windows-os eredménnyelszemben, hogy amíg windows alatt kaptam egy dictionary-t az eredménnyel így kapok, egy listát dictionary-el
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!