diff --git a/packages/tools/src/stringTools.ts b/packages/tools/src/stringTools.ts
index d3ba6cbe2..d3a44c5a5 100644
--- a/packages/tools/src/stringTools.ts
+++ b/packages/tools/src/stringTools.ts
@@ -1,3 +1,12 @@
-export function toHexString(byteArray) {
+export function arrayToHexString(byteArray) {
return byteArray.reduce((output, elem) => output + ('0' + elem.toString(16)).slice(-2), '');
}
+
+export function hexStringToArray(inputString) {
+ var hex = inputString.toString();
+ var res = [];
+ for (var n = 0; n < hex.length; n += 2) {
+ res.push(parseInt(hex.substr(n, 2), 16));
+ }
+ return res;
+}
diff --git a/packages/web/src/datagrid/DataGridCell.svelte b/packages/web/src/datagrid/DataGridCell.svelte
index ee7bf99af..57fcc169f 100644
--- a/packages/web/src/datagrid/DataGridCell.svelte
+++ b/packages/web/src/datagrid/DataGridCell.svelte
@@ -37,6 +37,7 @@
import _ from 'lodash';
import ShowFormButton from '../formview/ShowFormButton.svelte';
import { getBoolSettingsValue } from '../settings/settingsTools';
+ import { arrayToHexString } from 'dbgate-tools';
export let rowIndex;
export let col;
@@ -99,7 +100,11 @@
{highlightSpecialCharacters(value)}
{/if}
{:else if value.type == 'Buffer' && _.isArray(value.data)}
- ({value.data.length} bytes)
+ {#if value.data.length <= 16}
+ {arrayToHexString(value.data)}
+ {:else}
+ ({value.data.length} bytes)
+ {/if}
{:else if _.isPlainObject(value)}
(JSON)
{:else if _.isArray(value)}
diff --git a/packages/web/src/datagrid/InplaceEditor.svelte b/packages/web/src/datagrid/InplaceEditor.svelte
index 23fd2c2b6..4a1829a62 100644
--- a/packages/web/src/datagrid/InplaceEditor.svelte
+++ b/packages/web/src/datagrid/InplaceEditor.svelte
@@ -1,8 +1,19 @@