Dieser Codeabschnitt druckt eine Datenzeile aus, die erwartet wird. Es druckt „Keine“ in der zweiten Reihe, die ich auf als auch eine Erklärung möchte, aber es ist nicht die HauptfragePython-Klasse mit Pyodbc. Fehler in mehreren Zeilen
rows = cursor.fetchone()
for row in rows:
cur = SHIPMENT_BO(row.SHIPMENT_NUM, row.SHIPMENT_ID, row.ORIGIN_BRANCH_CODE, row.DEST_BRANCH_CODE)
print(cur.PrintShipment())
Dieser Code liefert nur die erste print-Anweisung in der Funktion, aber keine der Daten.
rows = cursor.fetchall()
for row in rows:
cur = SHIPMENT_BO(row.SHIPMENT_NUM, row.SHIPMENT_ID, row.ORIGIN_BRANCH_CODE, row.DEST_BRANCH_CODE)
print(cur.PrintShipment())
ist die Klasse I oben
class SHIPMENT_BO:
def __init__(self, shipNo, shipId, origBranch, destBranch):
self.__shipmentNo = shipNo
self.__shipmentID = shipId
self.__originBranch = origBranch
self.__destinationBranch = destBranch
def PrintShipment(self):
print("Shipment No, Shipment ID, Origin Branch, Destination Branch")
print(self.__shipmentNo + " " + str(self.__shipmentID) + " " + self.__originBranch + " " + self.__destinationBranch)
nennen Wenn ich die Sendungsnummer direkt druckt es Millionen von Zeilen drucken, wie
rows = cursor.fetchall()
for row in rows:
print(row.SHIPMENT_NUM)
#cur = SHIPMENT_BO(row.SHIPMENT_NUM, row.SHIPMENT_ID, row.ORIGIN_BRANCH_CODE, row.DEST_BRANCH_CODE)
#print(cur.PrintShipment())
Meine erste Frage, warum der Code tut, wird erwartet, und Klasse arbeiten für eine Zeile, aber nicht für mehrere Zeilen? Meine zweite Frage ist, warum bekomme ich einen "None" Print nach dem Code mit einer Zeile? Schließlich funktioniert dieser Code überhaupt nicht (keine der print-Anweisungen wird ausgeführt), Sie würden sicherlich mindestens die eine Zeile erhalten, die Sie im Cursor ausgewählt haben.
rows = cursor.fetchone()
for row in rows:
cur = SHIPMENT_BO(row.SHIPMENT_NUM, row.SHIPMENT_ID, row.ORIGIN_BRANCH_CODE, row.DEST_BRANCH_CODE)
print(cur.PrintShipment())
Danke, das erklärt mein Problem mit der „None“ nach der einzigen Zeile Abfrage gedruckt werden. Haben Sie eine Idee, warum die Klasse nicht für mehrere Zeilen arbeitet, sondern für eine einzelne Zeile funktioniert? Wie ich oben erwähnte, wenn Sie die row.SHIPMENT_NUM explizit drucken, dann druckt es Millionen von Zeilen in der for-Schleife, so dass die Daten extrahiert werden. Gibt es etwas falsches in meiner Syntax, das ich nicht sehe oder nicht verstehe? Warum arbeitet die Klasse für eine Zeile, aber nicht viele? – lem
@lem - * "Hast du eine Idee, warum die Klasse nicht funktioniert" * - Nicht wirklich. [This] (http://pastebin.com/UsvrYWWj) funktioniert gut für mich. –