Allgemeine Frage: SQL-Strings in Python-Code oder außerhalb?
Verfasst: Donnerstag 24. Januar 2008, 14:03
Hallo,
ich möchte mal eine allgemeinere Diskussion über die Unterbringung komplexerer (z.B. mit Unterabfragen) und damit umfangreicherer SQL-Strings anstoßen. Bislang bringe ich sie alle im Quelltext unter, an oder in der Näher der Stelle, an der sie benötigt werden. Ich finde allerdings, daß größere Blöcke SQL im Pythoncode nicht unbedingt zu dessen Lesbarkeit beitragen. Als Alternative dachte ich bislang daran, die SQL-Strings gesammelt in einer separaten Textdatei unterzubringen, diese dann irgendwann einzulesen und im Quelltext dann an der richtigen Stelle nur noch den Namen der Stringkonstanten zu verwenden. Dies erschwert aber unter Umständen das Verständnis des Codeabschnitts, weil die Information, welche Felder zu erwarten sind, nun mehr an ganz anderer Stelle zu finden ist. Eine weitere Idee wäre die Verwendung von StoredProcs oder ähnlichem, was ich aber aus verteilungstechnischen Gründen als eher ungünstig empfinde.
Wie handhabt ihr das?
Gruß
Jan-Peer
ich möchte mal eine allgemeinere Diskussion über die Unterbringung komplexerer (z.B. mit Unterabfragen) und damit umfangreicherer SQL-Strings anstoßen. Bislang bringe ich sie alle im Quelltext unter, an oder in der Näher der Stelle, an der sie benötigt werden. Ich finde allerdings, daß größere Blöcke SQL im Pythoncode nicht unbedingt zu dessen Lesbarkeit beitragen. Als Alternative dachte ich bislang daran, die SQL-Strings gesammelt in einer separaten Textdatei unterzubringen, diese dann irgendwann einzulesen und im Quelltext dann an der richtigen Stelle nur noch den Namen der Stringkonstanten zu verwenden. Dies erschwert aber unter Umständen das Verständnis des Codeabschnitts, weil die Information, welche Felder zu erwarten sind, nun mehr an ganz anderer Stelle zu finden ist. Eine weitere Idee wäre die Verwendung von StoredProcs oder ähnlichem, was ich aber aus verteilungstechnischen Gründen als eher ungünstig empfinde.
Wie handhabt ihr das?
Gruß
Jan-Peer