2010-02-03 14 views
6

Ich hatte den Eindruck, dass das Angeben von ganzen Zahlen in SQL-Abfragen verpönt ist, aber ich habe kürzlich gelernt, dass sich bekannte Frameworks wie Django an diese Praxis halten. Ist das überhaupt akzeptabel?Angeben von Ganzzahlen

Antwort

8

Die Frage impliziert, dass Sie überhaupt nackte Werte in Ihre SQL-Abfrage einfügen. Ich denke, die "akzeptabelste" Vorgehensweise wäre, die Abfrage stattdessen zu parametrisieren - auf diese Weise müssen Sie sich nicht mit solchen Problemen befassen; Lassen Sie die Datenzugriffsbibliothek dies stattdessen für Sie übernehmen.

+3

+1 für die Parametrierung! – AdaTheDev

+0

+1, nicht mit Bind-Params ist eine viel schlechtere Idee in einem Framework. – macabail

+0

Während die Parametrisierung eine gute Idee zu sein scheint, ist sie nicht wirklich die gazillion Zeilen von Boilerplate Code wert, die es erfordert. Du wirst viele erfolgreiche Apps ohne sie finden (wie Django, denke ich) – Andomar

0

Das Angeben von Ganzzahlen in SQL hat nur eine geringe Leistungseinbuße. Das Entfernen der Anführungszeichen ist viel weniger Arbeit als das Umwandeln der ASCII-Darstellung in eine binäre Ganzzahl.

Also ich würde sagen, es ist vollkommen akzeptabel, vor allem für ein RAD-Framework.

+0

Aber die ganze Zahl muss immer noch in beide Richtungen konvertiert werden. – recursive

0

Ich bin nicht sicher über alle SQL-Datenbanken, aber SQL Server wird implizit eine zitierte Zahl in ein int konvertieren. Das folgende Beispiel gibt 166 in SQL Server 2000 zurück:

select '500'/3