Kezdőoldal » Számítástechnika » Programozás » Üdv a lenti kód windows alatt...

Üdv a lenti kód windows alatt működik Raspberry-n nem, miért lehet az oka?

Figyelt kérdés

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!



#Python #MySQL #Raspberry #stored procedure
2022. jún. 15. 13:25
1 2
 11/17 anonim ***** válasza:

"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.

2022. jún. 16. 10:16
Hasznos számodra ez a válasz?
 12/17 A kérdező kommentje:

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)

2022. jún. 16. 10:28
 13/17 anonim ***** válasza:

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.

2022. jún. 16. 10:30
Hasznos számodra ez a válasz?
 14/17 A kérdező kommentje:
windowsba nem kérte ezt a multi=True-t
2022. jún. 16. 10:33
 15/17 A kérdező kommentje:
Ja és a stored procedure is egy szimpla select query..
2022. jún. 16. 10:36
 16/17 anonim ***** válasza:

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]

+ [link]


A Pythonnak ugyanaz a kliens oldali adatbázis-motorja a két rendszeren?

2022. jún. 16. 10:55
Hasznos számodra ez a válasz?
 17/17 A kérdező kommentje:

í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

2022. jún. 16. 10:59
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!