小编T'l*_*ash的帖子

插入冲突时的回滚触发器

我有这个:

CREATE FUNCTION upsert_user(u_name text, u_fullname text, u_email text, u_suffix text) RETURNS integer
    LANGUAGE plpgsql
    AS $$
DECLARE
    userid users.id_user%TYPE;
BEGIN
    LOOP
        -- first try to update
        UPDATE users SET "fullname" = u_fullname, "email" = u_email, "suffix" = u_suffix WHERE "name" = u_name RETURNING "id_user" INTO userid;
        -- check if the row is found
        IF FOUND THEN
            RETURN userid;
        END IF;
        -- not found so insert the row
        BEGIN
            INSERT INTO users ("name", "fullname", "email", "suffix") VALUES (u_name, u_fullname, u_email, …
Run Code Online (Sandbox Code Playgroud)

sql postgresql plpgsql postgresql-9.5

5
推荐指数
1
解决办法
534
查看次数

从JavaScript捕获条形码读取器(键盘楔)事件

我正在开发一个Web应用程序,该应用程序必须在运行Android 4.4的Honeywell Dolphin 75e设备上使用。集成的条形码读取器可以在“键盘楔形”模式下运行,但仅在文本字段具有焦点时才可以。

在桌面浏览器中,我可以使用该代码捕获条形码读取器事件:

var BarcodesScanner = {
    barcodeData: '',
    deviceId: '',
    symbology: '',
    timestamp: 0,
    dataLength: 0
};

function onScannerNavigate(barcodeData, deviceId, symbology, timestamp, dataLength){
    BarcodesScanner.barcodeData = barcodeData;
    BarcodesScanner.deviceId = deviceId;
    BarcodesScanner.symbology = symbology;
    BarcodesScanner.timestamp = timestamp;
    BarcodesScanner.dataLength = dataLength;
    $(BarcodesScanner).trigger('scan');
}

BarcodesScanner.tmpTimestamp = 0;
BarcodesScanner.tmpData = '';
$(document).on('keypress', function(e){
    e.stopPropagation();
    var keycode = (e.keyCode ? e.keyCode : e.which);
    if (BarcodesScanner.tmpTimestamp < Date.now() - 500){
        BarcodesScanner.tmpData = '';
        BarcodesScanner.tmpTimestamp = Date.now();
    }
    if (keycode == 13 && BarcodesScanner.tmpData.length > …
Run Code Online (Sandbox Code Playgroud)

javascript android barcode-scanner keyboard-wedge honeywell

2
推荐指数
1
解决办法
8537
查看次数