@@ -120,42 +120,47 @@ int TranslateJDBCType(int stp, char *tn, int prec, int& len, char& v)
120
120
int type;
121
121
122
122
switch (stp) {
123
- case -1 : // LONGVARCHAR
123
+ case -1 : // LONGVARCHAR
124
+ case -16 : // LONGNVARCHAR (unicode)
124
125
if (GetTypeConv () != TPC_YES)
125
126
return TYPE_ERROR;
126
127
else
127
128
len = MY_MIN (abs (len), GetConvSize ());
128
- case 12 : // VARCHAR
129
+ case 12 : // VARCHAR
130
+ case -9 : // NVARCHAR (unicode)
129
131
v = ' V' ;
130
- case 1 : // CHAR
132
+ case 1 : // CHAR
133
+ case -15 : // NCHAR (unicode)
134
+ case -8 : // ROWID
131
135
type = TYPE_STRING;
132
136
break ;
133
- case 2 : // NUMERIC
134
- case 3 : // DECIMAL
135
- case -3 : // VARBINARY
137
+ case 2 : // NUMERIC
138
+ case 3 : // DECIMAL
139
+ case -3 : // VARBINARY
136
140
type = TYPE_DECIM;
137
141
break ;
138
- case 4 : // INTEGER
142
+ case 4 : // INTEGER
139
143
type = TYPE_INT;
140
144
break ;
141
- case 5 : // SMALLINT
145
+ case 5 : // SMALLINT
142
146
type = TYPE_SHORT;
143
147
break ;
144
- case -6 : // TINYINT
145
- case -7 : // BIT
148
+ case -6 : // TINYINT
149
+ case -7 : // BIT
150
+ case 16 : // BOOLEAN
146
151
type = TYPE_TINY;
147
152
break ;
148
- case 6 : // FLOAT
149
- case 7 : // REAL
150
- case 8 : // DOUBLE
153
+ case 6 : // FLOAT
154
+ case 7 : // REAL
155
+ case 8 : // DOUBLE
151
156
type = TYPE_DOUBLE;
152
157
break ;
153
- case 93 : // TIMESTAMP, DATETIME
158
+ case 93 : // TIMESTAMP, DATETIME
154
159
type = TYPE_DATE;
155
160
len = 19 + ((prec) ? (prec+1 ) : 0 );
156
161
v = (tn && toupper (tn[0 ]) == ' T' ) ? ' S' : ' E' ;
157
162
break ;
158
- case 91 : // DATE, YEAR
163
+ case 91 : // DATE, YEAR
159
164
type = TYPE_DATE;
160
165
161
166
if (!tn || toupper (tn[0 ]) != ' Y' ) {
@@ -167,17 +172,27 @@ int TranslateJDBCType(int stp, char *tn, int prec, int& len, char& v)
167
172
} // endif len
168
173
169
174
break ;
170
- case 92 : // TIME
175
+ case 92 : // TIME
171
176
type = TYPE_DATE;
172
177
len = 8 + ((prec) ? (prec+1 ) : 0 );
173
178
v = ' T' ;
174
179
break ;
175
- case -5 : // BIGINT
180
+ case -5 : // BIGINT
176
181
type = TYPE_BIGINT;
177
182
break ;
178
- case 0 : // NULL
179
- case -2 : // BINARY
180
- case -4 : // LONGVARBINARY
183
+ case 0 : // NULL
184
+ case -2 : // BINARY
185
+ case -4 : // LONGVARBINARY
186
+ case 70 : // DATALINK
187
+ case 2000 : // JAVA_OBJECT
188
+ case 2001 : // DISTINCT
189
+ case 2002 : // STRUCT
190
+ case 2003 : // ARRAY
191
+ case 2004 : // BLOB
192
+ case 2005 : // CLOB
193
+ case 2006 : // REF
194
+ case 2009 : // SQLXML
195
+ case 2011 : // NCLOB
181
196
default :
182
197
type = TYPE_ERROR;
183
198
len = 0 ;
@@ -1225,9 +1240,12 @@ void JDBConn::SetColumnValue(int rank, PSZ name, PVAL val)
1225
1240
1226
1241
switch (ctyp) {
1227
1242
case 12 : // VARCHAR
1243
+ case -9 : // NVARCHAR
1228
1244
case -1 : // LONGVARCHAR
1229
1245
case 1 : // CHAR
1230
- case 3 : // DECIMAL
1246
+ case -15 : // NCHAR
1247
+ case 3 : // DECIMAL
1248
+ case -8 : // ROWID
1231
1249
if (jb && ctyp != 3 )
1232
1250
cn = (jstring)jb;
1233
1251
else if (!gmID (g, chrfldid, " StringField" , " (ILjava/lang/String;)Ljava/lang/String;" ))
@@ -1245,6 +1263,7 @@ void JDBConn::SetColumnValue(int rank, PSZ name, PVAL val)
1245
1263
case 4 : // INTEGER
1246
1264
case 5 : // SMALLINT
1247
1265
case -6 : // TINYINT
1266
+ case 16 : // BOOLEAN
1248
1267
case -7 : // BIT
1249
1268
if (!gmID (g, intfldid, " IntField" , " (ILjava/lang/String;)I" ))
1250
1269
val->SetValue ((int )env->CallIntMethod (job, intfldid, rank, jn));
0 commit comments