1313 */
1414class DB2Processor extends Processor
1515{
16+
17+ private $ bdType ;
18+
19+ /**
20+ * DB2Processor constructor.
21+ *
22+ * @param $bdType
23+ */
24+ public function __construct ($ bdType )
25+ {
26+ $ this ->bdType = $ bdType ;
27+ }
1628 /**
1729 * Process the results of a "select" query.
1830 *
1931 * @param \Illuminate\Database\Query\Builder $query
20- * @param array $results
32+ * @param array $results
2133 *
2234 * @return array
2335 */
@@ -37,13 +49,15 @@ class DB2Processor extends Processor
3749 return $results;
3850 }*/
3951
52+
53+
4054 /**
4155 * Process an "insert get ID" query.
4256 *
4357 * @param \Illuminate\Database\Query\Builder $query
44- * @param string $sql
45- * @param array $values
46- * @param string $sequence
58+ * @param string $sql
59+ * @param array $values
60+ * @param string $sequence
4761 *
4862 * @return int/array
4963 */
@@ -52,19 +66,24 @@ public function processInsertGetId(Builder $query, $sql, $values, $sequence = nu
5266 $ sequenceStr = $ sequence ?: 'id ' ;
5367
5468 if (is_array ($ sequence )) {
55- $ grammar = new DB2Grammar ();
69+ $ grammar = new DB2Grammar ($ this -> bdType );
5670 $ sequenceStr = $ grammar ->columnize ($ sequence );
5771 }
5872
59- $ sql = 'select ' . $ sequenceStr. ' from new table ( ' . $ sql ;
73+ $ sql = 'select ' . $ sequenceStr . ' from new table ( ' . $ sql ;
6074 $ sql .= ') ' ;
61- $ results = $ query ->getConnection ()->select ($ sql , $ values );
75+ $ results = $ query ->getConnection ()
76+ ->select ($ sql , $ values );
6277
6378 if (is_array ($ sequence )) {
6479 return array_values ((array ) $ results [0 ]);
6580 } else {
6681 $ result = (array ) $ results [0 ];
67- $ id = $ result [$ sequenceStr ];
82+ if (isset ($ result [$ sequenceStr ])) {
83+ $ id = $ result [$ sequenceStr ];
84+ } else {
85+ $ id = $ result [strtoupper ($ sequenceStr )];
86+ }
6887
6988 return is_numeric ($ id ) ? (int ) $ id : $ id ;
7089 }
0 commit comments