SQLite - Можем ли мы передать аргументы в файл .sql из пакетного файла? - PullRequest
0 голосов
/ 18 июня 2019

Я хотел бы передать аргумент из командного файла в файл SQL (для SQLite). Мне не повезло найти этот метод онлайн, можно ли это сделать? Если нет, есть ли альтернативный способ?

Например, вот что я хотел сделать:

В пакетном файле я хотел передать %arg1% sqlTest.sql:

@echo off
set arg1=%1
echo .quit | sqlite3.exe -init sqlTest.sql %arg1%"

В файле sqlTest.sql:

.open "db/code_status.db"
SELECT FileName, FilePath, Author
FROM CodeStatus
LEFT JOIN CodeFile ON CodeStatus.ChangeId = CodeFile.ChangeId
WHERE WorkItemId = 2197
ORDER BY ModifiedDate ASC;

Для WHERE WorkItemId = 2197 я бы хотел заменить 2197 на значение аргумента из пакета.

Есть решение? Спасибо!

1 Ответ

0 голосов
/ 19 июня 2019

Вы можете попробовать использовать точечную команду param[eter] для оболочки командной строки sqlite (section15).

В этом конкретном примере измените sqlTest.sql:

  • удалить строку .open
  • изменить WHERE WorkItemId = 2197 на WHERE WorkItemId = :id

Тогда вы должны получить желаемый результат с чем-токак этот пакетный скрипт:

@echo off
sqlite3.exe "db/code_status.db" ".param set :id %1" ".load sqlTest.sql"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...