Updated value(s) in a table-like structure:
[0][0] (empty) | [0][1] column header | ... |
---|---|---|
[1][0] line name | [1][0] content of line | ... |
[2][0] line name | [2][1] content of line | ... |
... | ... | ... |
e.g. this is the output for the query "SELECT '_original.._value' FROM 'ExampleDP_Arg*'"
converted
to JSON:
[
["",":_original.._value"],
["System1:ExampleDP_Arg1.",2.43],
["System1:ExampleDP_Arg2.",5.76]
]
Type of the update.
Optional
error: WinccoaErrorIn case of an error, the other parameters are undefined and this parameter will contain error information.
When the query passed to WinccoaManager.dpQueryConnectAll or WinccoaManager.dpQueryConnectSingle is invalid, no exception will be thrown by these methods, but the first (and only) callback will contain a WinccoaError in this parameter.
import {
WinccoaManager,
WinccoaConnectUpdateType,
WinccoaError
} from 'winccoa-manager';
const winccoa = new WinccoaManager();
function queryConnectCB (
values: unknown[][],
type: WinccoaConnectUpdateType,
error?: WinccoaError,
) {
if (error) {
console.error(error);
return;
}
if (type == WinccoaConnectUpdateType.Answer)
console.warn('--- Initial update ---');
// ignore line with index 0 (it's a header) and start with index 1
for (let i = 1; i < values.length; i++) {
console.info(`DPE = '%s', value = %s`, ...values[i]);
}
};
function connect() {
let id = -1;
try {
id = winccoa.dpQueryConnectSingle(
queryConnectCB,
true,
"SELECT '_original.._value' FROM 'ExampleDP_Arg*'"
);
} catch (exc) {
console.error(exc);
}
}
To pass user data to the callback, it is not necessary to use a different API method. Instead, an arrow function can be used to include user data whenever a callback is called. The same pattern can also be used for other callbacks, e. g. from WinccoaManager.dpConnect
import {
WinccoaManager,
WinccoaConnectUpdateType,
WinccoaError
} from 'winccoa-manager';
const winccoa = new WinccoaManager();
function queryConnectCB (
userData: string,
values: unknown[][],
type: WinccoaConnectUpdateType,
error?: WinccoaError,
) {
if (error) {
console.error(error);
return;
}
if (type == WinccoaConnectUpdateType.Answer)
console.warn('--- Initial update --- ' + userData);
// ignore line with index 0 (it's a header) and start with index 1
for (let i = 1; i < values.length; i++) {
console.info(`DPE = '%s', value = %s`, ...values[i]);
}
}
function connectUserData(userData: string) {
let id = -1;
try {
id = winccoa.dpQueryConnectSingle(
// use arrow function to add userData for callback
(values, type, error?) => queryConnectCB(userData, values, type, error),
true,
"SELECT '_original.._value' FROM 'ExampleDP_Arg*'",
);
} catch (exc) {
console.error(exc);
}
}
Type of callbacks from WinccoaManager.dpQueryConnectAll and WinccoaManager.dpQueryConnectSingle.