summaryrefslogtreecommitdiffstats
path: root/src/sql
diff options
context:
space:
mode:
authorBill King <bking@trolltech.com>2009-07-03 13:08:17 +1000
committerBill King <bking@trolltech.com>2009-07-03 13:10:19 +1000
commit5b701c1bbbbf4993117bd0311717b73fafae02fd (patch)
tree7e28e6312daac7e3910f83d74fe8f7ada3de9b57 /src/sql
parentb0f18119b4559a2b425222c2d63671422c014783 (diff)
Fixes invalid length for numeric fields in oracle.
When the precisionpolicy is high, and the field is numeric, it was getting confused as a string field and pulling the wrong length value.
Diffstat (limited to 'src/sql')
-rw-r--r--src/sql/drivers/oci/qsql_oci.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp
index 8d34dd8750..1ffd999b3a 100644
--- a/src/sql/drivers/oci/qsql_oci.cpp
+++ b/src/sql/drivers/oci/qsql_oci.cpp
@@ -611,7 +611,7 @@ static QSqlField qFromOraInf(const OraFieldInfo &ofi)
QSqlField f(ofi.name, ofi.type);
f.setRequired(ofi.oraIsNull == 0);
- if (ofi.type == QVariant::String)
+ if (ofi.type == QVariant::String && ofi.oraType != SQLT_NUM && ofi.oraType != SQLT_VNU)
f.setLength(ofi.oraFieldLength);
else
f.setLength(ofi.oraPrecision == 0 ? 38 : int(ofi.oraPrecision));