хранение таблицы журнала в sqlite базе данных?

Я предполагаю, что эти сайты прослушивают событие изменения ввода. Попробуйте это:

function handleMessage(event) {
    var arguments = event.message;    

    var emailStr = arguments["Email"];

    var nameInputs = document.getElementsByTagName('input');

    for (var i = 0; i < nameInputs.length; i++) {
        var theFieldName = nameInputs[i].name.toLowerCase();
        var theFieldType = nameInputs[i].type.toLowerCase();

        if (theFieldName.indexOf("email") !== -1) {
            if (!(emailStr === undefined)) {
                nameInputs[i].value = emailStr;
                nameInputs[i].dispatchEvent(new Event('change'));//trigger change event
                filledInEmail = 1;
            }
        }
        else if (theFieldType.indexOf("email") !== -1) {
            if (!(emailStr === undefined)) {
                nameInputs[i].value = emailStr;
                nameInputs[i].dispatchEvent(new Event('change'));//trigger change event
                filledInEmail = 1;
            }
        }
    }
}
9
задан polyglot 12 January 2009 в 02:51
поделиться

2 ответа

Хотя следующее не отвечает всем Вашим требованиям, можно хотеть видеть один способ сделать это. Учебное руководство Mike Chirico SQLite имеет раздел по Входу, Все Вставляет, Обновления, и Удаляет, который подражает функциональности бинарного журнала MySQL.

Это полагается на триггеры, которые должны соответствовать схеме для каждой таблицы, изменения которой Вы хотите отследить. Таким образом, если Ваша таблица имеет поле, названное "a", то регистрирующаяся таблица должна отслеживать "aOLD" и "СНОВА". Таким образом триггер может записать обновления, вставляет и удаляет сделанный к полям в той конкретной таблице.

7
ответ дан 4 December 2019 в 23:08
поделиться

они функционируют, может быть полезным

void *sqlite3_update_hook(
  sqlite3*, 
  void(*)(void *,int ,char const *,char const *,sqlite3_int64),
  void*
);

void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);

void *sqlite3_profile(
   sqlite3*,
   void(*xProfile)(void*,const char*,sqlite3_uint64), void*
);

они, кажется, действуют на отдельный dbs

единственным глобальным путем я вижу, должен использовать

sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName);
int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt);
int sqlite3_vfs_unregister(sqlite3_vfs*);
0
ответ дан 4 December 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: