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