Blob Blame History Raw
From abf48e295a266b4a987c4f5283114bd80019a202 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=A1=D0=B0=D0=BC=D1?=
 =?UTF-8?q?=83=D1=81=D0=B5=D0=BD=D0=BA=D0=BE?= <samusenko@msm.ru>
Date: Thu, 14 Jun 2012 11:55:35 +0400
Subject: [PATCH 08/13] Fix SQL types

---
 modules/db_oracle/val.c |   34 +++++++++++++++++++++++++++++++---
 1 file changed, 31 insertions(+), 3 deletions(-)

diff --git a/modules/db_oracle/val.c b/modules/db_oracle/val.c
index 85c0de7..80f4016 100644
--- a/modules/db_oracle/val.c
+++ b/modules/db_oracle/val.c
@@ -58,9 +58,37 @@ int db_oracle_val2bind(bmap_t* _m, const db_val_t* _v, OCIDate* _o)
 	if (VAL_NULL(_v)) {
 		_m->addr = NULL;
 		_m->size = 0;
-		_m->type = SQLT_NON;
-		return 0;
-	}
+        switch(VAL_TYPE(_v)) {
+            case DB_INT:
+		        _m->type = SQLT_INT;
+                break;
+            case DB_BIGINT:
+		        _m->type = SQLT_NUM;
+                break;
+	        case DB_BITMAP:
+                _m->type = SQLT_UIN;
+                break;
+	        case DB_DOUBLE:
+		        _m->type = SQLT_FLT;
+                break;
+	        case DB_STRING:
+		        _m->type = SQLT_STR;
+                break;
+	        case DB_STR:
+			    _m->type = SQLT_CHR;
+                break;
+	        case DB_DATETIME:
+                _m->type = SQLT_ODT;
+                break;
+	        case DB_BLOB:
+		        _m->type = SQLT_CLOB;
+                break;
+            default:
+	            LM_ERR("unknown data type\n");
+	            return -1;
+        }
+ 		return 0;
+ 	}
 
 	switch (VAL_TYPE(_v)) {
 	case DB_INT:
-- 
1.7.10.4