veretragna
Как писал, так и работает.
- Сообщения
- 140
- Репутация
- 10
Версия AutoIt: 3.3.12.0
Описание: Нужна функция, аналогичная _SQLite_FetchData, только наоборот - чтобы отправлять данные в базу, повторно используя тот же statement, полученный от _SQLite_Query.
Примечания:
Доброго вечера сообществу.
В процессе исследования функционала UDF SQLite.au3, и сопоставив со своими данными, я узнал, что SQLite позволяет проводить некоторые интересные вещи.
Например, по одному query, полученному от функции _SQLite_Query, можно получить множество данных. Например, так:
Исследуя примеры использования SQLite на С/С++, я обнаружил, что можно аналогичным образом и отправлять данные, повторно используя тот же statement.
Фрагмент кода на С:
Буду благодарен, если кто-то реализует такую функцию на AutoIt.
Описание: Нужна функция, аналогичная _SQLite_FetchData, только наоборот - чтобы отправлять данные в базу, повторно используя тот же statement, полученный от _SQLite_Query.
Примечания:
Доброго вечера сообществу.
В процессе исследования функционала UDF SQLite.au3, и сопоставив со своими данными, я узнал, что SQLite позволяет проводить некоторые интересные вещи.
Например, по одному query, полученному от функции _SQLite_Query, можно получить множество данных. Например, так:
Код:
_SQLite_Query(-1, "SELECT Name FROM 'GuildList';", $hQuery)
While 1
If _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK Then
; предпринимаем действия
Else
_SQLite_QueryFinalize($hQuery)
ExitLoop
EndIf
WEnd
Исследуя примеры использования SQLite на С/С++, я обнаружил, что можно аналогичным образом и отправлять данные, повторно используя тот же statement.
Фрагмент кода на С:
Код:
sprintf(sSQL, "INSERT INTO TTC VALUES (NULL, @RT, @BR, @VR, @ST, @VI, @DT, @TM)");
sqlite3_prepare_v2(db, sSQL, BUFFER_SIZE, &stmt, &tail);
sqlite3_exec(db, "BEGIN TRANSACTION", NULL, NULL, &sErrMsg);
pFile = fopen (INPUTDATA,"r");
while (!feof(pFile)) {
fgets (sInputBuf, BUFFER_SIZE, pFile);
sqlite3_bind_text(stmt, 1, strtok (sInputBuf, "\t"), -1, SQLITE_TRANSIENT); /* Get Route */
sqlite3_bind_text(stmt, 2, strtok (NULL, "\t"), -1, SQLITE_TRANSIENT); /* Get Branch */
sqlite3_bind_text(stmt, 3, strtok (NULL, "\t"), -1, SQLITE_TRANSIENT); /* Get Version */
sqlite3_bind_text(stmt, 4, strtok (NULL, "\t"), -1, SQLITE_TRANSIENT); /* Get Stop Number */
sqlite3_bind_text(stmt, 5, strtok (NULL, "\t"), -1, SQLITE_TRANSIENT); /* Get Vehicle */
sqlite3_bind_text(stmt, 6, strtok (NULL, "\t"), -1, SQLITE_TRANSIENT); /* Get Date */
sqlite3_bind_text(stmt, 7, strtok (NULL, "\t"), -1, SQLITE_TRANSIENT); /* Get Time */
sqlite3_step(stmt); /* Execute the SQL Statement */
sqlite3_clear_bindings(stmt); /* Clear bindings */
sqlite3_reset(stmt); /* Reset VDBE */
n++;
}
fclose (pFile);
Буду благодарен, если кто-то реализует такую функцию на AutoIt.