|
@@ -5166,11 +5166,17 @@ namespace Tqdev\PhpCrudApi\Database {
|
5166
|
5166
|
|
5167
|
5167
|
private function convertRecordValue($conversion, $value)
|
5168
|
5168
|
{
|
5169
|
|
- switch ($conversion) {
|
|
5169
|
+ $args = explode('|', $conversion);
|
|
5170
|
+ $type = array_shift($args);
|
|
5171
|
+ switch ($type) {
|
5170
|
5172
|
case 'boolean':
|
5171
|
5173
|
return $value ? true : false;
|
5172
|
5174
|
case 'integer':
|
5173
|
5175
|
return (int) $value;
|
|
5176
|
+ case 'float':
|
|
5177
|
+ return (float) $value;
|
|
5178
|
+ case 'decimal':
|
|
5179
|
+ return number_format($value, $args[0], '.', '');
|
5174
|
5180
|
}
|
5175
|
5181
|
return $value;
|
5176
|
5182
|
}
|
|
@@ -5183,6 +5189,12 @@ namespace Tqdev\PhpCrudApi\Database {
|
5183
|
5189
|
if (in_array($this->driver, ['sqlsrv', 'sqlite']) && in_array($column->getType(), ['integer', 'bigint'])) {
|
5184
|
5190
|
return 'integer';
|
5185
|
5191
|
}
|
|
5192
|
+ if (in_array($this->driver, ['sqlite', 'pgsql']) && in_array($column->getType(), ['float', 'double'])) {
|
|
5193
|
+ return 'float';
|
|
5194
|
+ }
|
|
5195
|
+ if (in_array($this->driver, ['sqlite']) && in_array($column->getType(), ['decimal'])) {
|
|
5196
|
+ return 'decimal|' . $column->getScale();
|
|
5197
|
+ }
|
5186
|
5198
|
return 'none';
|
5187
|
5199
|
}
|
5188
|
5200
|
|
|
@@ -5656,7 +5668,7 @@ namespace Tqdev\PhpCrudApi\Database {
|
5656
|
5668
|
return $column->getPk() ? ' AUTO_INCREMENT' : '';
|
5657
|
5669
|
case 'pgsql':
|
5658
|
5670
|
case 'sqlsrv':
|
5659
|
|
- return '';
|
|
5671
|
+ return $column->getPk() ? ' IDENTITY(1,1)' : '';
|
5660
|
5672
|
case 'sqlite':
|
5661
|
5673
|
return $column->getPk() ? ' AUTOINCREMENT' : '';
|
5662
|
5674
|
}
|
|
@@ -6024,7 +6036,7 @@ namespace Tqdev\PhpCrudApi\Database {
|
6024
|
6036
|
private function query(string $sql, array $arguments): bool
|
6025
|
6037
|
{
|
6026
|
6038
|
$stmt = $this->pdo->prepare($sql);
|
6027
|
|
- //echo "- $sql -- " . json_encode($arguments) . "\n";
|
|
6039
|
+ // echo "- $sql -- " . json_encode($arguments) . "\n";
|
6028
|
6040
|
return $stmt->execute($arguments);
|
6029
|
6041
|
}
|
6030
|
6042
|
}
|
|
@@ -6377,19 +6389,26 @@ namespace Tqdev\PhpCrudApi\Database {
|
6377
|
6389
|
private $fromJdbc = [
|
6378
|
6390
|
'mysql' => [
|
6379
|
6391
|
'clob' => 'longtext',
|
6380
|
|
- 'boolean' => 'tinyint',
|
|
6392
|
+ 'boolean' => 'tinyint(1)',
|
6381
|
6393
|
'blob' => 'longblob',
|
6382
|
6394
|
'timestamp' => 'datetime',
|
6383
|
6395
|
],
|
6384
|
6396
|
'pgsql' => [
|
6385
|
6397
|
'clob' => 'text',
|
6386
|
6398
|
'blob' => 'bytea',
|
|
6399
|
+ 'float' => 'real',
|
|
6400
|
+ 'double' => 'double precision',
|
|
6401
|
+ 'varbinary' => 'bytea',
|
6387
|
6402
|
],
|
6388
|
6403
|
'sqlsrv' => [
|
6389
|
6404
|
'boolean' => 'bit',
|
6390
|
6405
|
'varchar' => 'nvarchar',
|
6391
|
6406
|
'clob' => 'ntext',
|
6392
|
6407
|
'blob' => 'image',
|
|
6408
|
+ 'time' => 'time(0)',
|
|
6409
|
+ 'timestamp' => 'datetime2(0)',
|
|
6410
|
+ 'double' => 'float',
|
|
6411
|
+ 'float' => 'real',
|
6393
|
6412
|
],
|
6394
|
6413
|
];
|
6395
|
6414
|
|