|
Как импортировать csv в sqllite
|
|||
---|---|---|---|
#18+
Собственно работаю на C# c сборкой под нет. Хочу напрямую импортировать CSV Вариан .import не интересен поскольку нужно использовать внешнюю програму(sqllite). Cмотрел в сторону create virtual table но не нашол примера с CSV Ручной импорт через SQLiteStudio тоже не вариант. Понимаю что решение рядом. Пожалуйста помогите. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 18:19 |
|
Как импортировать csv в sqllite
|
|||
---|---|---|---|
#18+
olehRВариан .import не интересен поскольку нужно использовать внешнюю програму(sqllite).А зря не интересен. Для большинства случаев этого хватает. Делаешь .bat файл с вызовом соответствующих команд и все. Если же процесс заливки надо делать часто и непременно из GUI, то CSV распарсить можно и вручную и скормить результат в insert'ы. А если хочется через virtual table, то надо писать модуль соответствующий. Насколько я знаю этим никто не заморачивался пока. Сделаешь - первым будешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 18:48 |
|
Как импортировать csv в sqllite
|
|||
---|---|---|---|
#18+
White OwlДелаешь .bat файл с вызовом соответствующих команд и все. Проблема в том что предполагается получать разние файлы и часто. В таком случае придется для каждого файла писать свой батник или переименововать пришедший. White OwlЕсли же процесс заливки надо делать часто и непременно из GUI, то CSV распарсить можно и вручную и скормить результат в insert'ы. Можно, но строк много. (десятки или сотни тисяч) будет долго по сравнению с .import. Нужен быстрий способ. White OwlА если хочется через virtual table, то надо писать модуль соответствующий. Насколько я знаю этим никто не заморачивался пока. Сделаешь - первым будешь. Чесно говоря надеялся что кто то уже написал. Но несколько часов поиска результата не дали. Да и чесно нет столько свободного времени. Да и наверно квалилификации. :) Тем более обидно что оно уже фактически написано. Смисл не включать ету возможность в движок? Ну хотя б опционально. White Owl, Спасибо за ответ ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 19:19 |
|
Как импортировать csv в sqllite
|
|||
---|---|---|---|
#18+
olehRWhite OwlДелаешь .bat файл с вызовом соответствующих команд и все. Проблема в том что предполагается получать разние файлы и часто. В таком случае придется для каждого файла писать свой батник или переименововать пришедший.А что, параметры для батников уже отменили? olehRWhite OwlЕсли же процесс заливки надо делать часто и непременно из GUI, то CSV распарсить можно и вручную и скормить результат в insert'ы. Можно, но строк много. (десятки или сотни тисяч) будет долго по сравнению с .import. Нужен быстрий способ.А .import это магия не использующая insert да? Ну тогда удивляйся: .import это совершенно стандартный вызов команды INSERT. В цикле. Прочитать строку из файла - распрасить, потом sqlite3_step, sqlite3_reset, повторить пока файл не кончился. olehRWhite OwlА если хочется через virtual table, то надо писать модуль соответствующий. Насколько я знаю этим никто не заморачивался пока. Сделаешь - первым будешь. Чесно говоря надеялся что кто то уже написал. Но несколько часов поиска результата не дали. Да и чесно нет столько свободного времени. Да и наверно квалилификации. :) Тем более обидно что оно уже фактически написано. Смисл не включать ету возможность в движок? Ну хотя б опционально.А зачем? Это достаточно примитивная задача которую каждый может решить сам. Ну если так уж лениво, бери свежую амальгаму, иди в shell.c и строки 1986-2133 это то что тебе нужно. Хочешь - прямо так копируешь в свой проект, хочешь разбираешься что в этих строках делается и переписываешь на свой любимый язык. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 19:51 |
|
Как импортировать csv в sqllite
|
|||
---|---|---|---|
#18+
olehRСмисл не включать ету возможность в движок? Ну хотя б опционально.ахаха)) а завтра другой погромист захочет одной строчкой импортировать данные из xls, doc, pdf и т.д. и т.п. пишите, батенька, руками от и до)) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 19:57 |
|
Как импортировать csv в sqllite
|
|||
---|---|---|---|
#18+
White OwlolehRТем более обидно что оно уже фактически написано. Смисл не включать ету возможность в движок? Ну хотя б опционально.А зачем? Это достаточно примитивная задача которую каждый может решить сам.Уточню пожалуй. А то меня начнут закидывать тухлыми помидорами с аргументацией "а библиотеки?!". У CSV на самом деле довольно много форматов. То что понимается как CSV в одной программе, не обязательно будет пониматься в другой. Существует http://tools.ietf.org/html/rfc4180 описывающий "стандарт", вот только не все ему следуют. Конкретно .import - следует. Но в зависимости от того, откуда приходит файл - возможно придется делать специальные коррекции. Так что как постоянный модуль это может быть слегка неудобным... К тому-же, csv это внешний файл который может быть обновлен или убит внешними средствами. Отслеживать жизненный цикл внешнего файла это задача не входящая в задачи СУБД. Вот как разовую команду (вместо модуля виртуальной таблицы) это сделать в принципе можно было бы.... Но разовые команды должны откуда-то подаваться. Либо от пользователя с мышью, либо от эникейщика который поддерживает систему, либо по расписанию. А все эти три случая - чистый случай работы клиента. однако.... Гугль найдет все! http://sqlite.org/cvstrac/wiki?p=ImportingFiles Уже готовый модуль. Сам не проверял. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 20:25 |
|
Как импортировать csv в sqllite
|
|||
---|---|---|---|
#18+
White OwlА если хочется через virtual table, то надо писать модуль соответствующий. Насколько я знаю этим никто не заморачивался пока. Сделаешь - первым будешь. Ну что вы: http://sqlite.mobigroup.ru/artifact/c96cffa9150e4d952928885e9a20a46c1b6faa48 http://sqlite.mobigroup.ru/artifact/042d0766acbde094e0faf668d4157db80b67e2f2 Есть и другие реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2013, 00:07 |
|
|
start [/forum/topic.php?fid=54&fpage=14&tid=2008857]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 270ms |
total: | 394ms |
0 / 0 |