powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Соединение с SQLite
17 сообщений из 17, страница 1 из 1
Соединение с SQLite
    #40113658
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, постоянно из районов шлют SQLite базы, они по размеру маленькие, SQL запросом объединить не получится, нужно внутри цикла делать много проверок, т.е. это я к тому, что соединяться с SQLite базой придётся регулярно, а не разово(перебросить в Excel и перекинуть в фокс). Как соединиться с SQLite базой?, т.е. как мне проверить стоят ли на компе odbc драйвера нужной версии, если не стоят, то где их можно скачать, как проверить, что драйвера встали нормально, а не криво, и как создать конекшин строку и попытаться соединиться с тестовой базой?
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40113659
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут почитай , там ссылки и на драйвер и на строку подключения.
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40113698
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Спасибо, но какой драйвер ODBC увидит фокс?, 32 битный или 64 битный?
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40113719
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1,
В общем 64 битный не видит, а когда подключаешь 32 битный, то кракозябры в view
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40113725
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1, всё вроде разобрался
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40113730
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фокс 32-битный, поэтому может использовать только 32-битные драйвера.
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40113737
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужно чтобы работало на разных рабочих местах можно использовать Command Line Shell For SQLite , это что-то типа консоли, которой можно дать скрипт и она его выпонит. Например экспортирует все таблицы в отдельные файлы CSV, затем фоксом их парси как обычный текст.
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114061
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114734
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, а не подскажите, почему экзешнику(MinGW) спокойно соединяется с базами sqllite db без всяких odbc драйверов, а для фокса нужен odbc драйвер?
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114739
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1
Здравствуйте, а не подскажите, почему экзешнику(MinGW) спокойно соединяется с базами sqllite db без всяких odbc драйверов, а для фокса нужен odbc драйвер?

Потому что в SQLite основной способ обращения к данным это API для С/С++ .
Драйвер ODBC это тоже надстройка над этим API, сделали чтобы иметь универсальное решение для любых других языков в виндавсе.

Можно сделать собственную надстройку в виде DLL, и через нее обращаться к БД, но будет неудобно пользоваться такой конструкцией из фокса.
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114744
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, а как можно переделать строку dsn, а то что не могу преобразовать, в проекте создал конекшн, представление и данные выбираются Connect string
Код: sql
1.
DSN=SQLite3 Datasource;Database=;StepAPI=0;SyncPragma=NORMAL;NoTXN=0;Timeout=100000;ShortNames=0;LongNames=0;NoCreat=0;NoWCHAR=


А теперь я пытаюсь перенести в программу чё-то не получается
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
TEXT TO lcConn NOSHOW PRETEXT 15
	Driver=SQLite3 Datasource;
	DATABASE="x:\data.sdb";
	CHARSET=WIN1251;
	DIALECT=1;
ENDTEXT 

PUBLIC nConn
nConn=SQLSTRINGCONNECT(lcConn)
IF nConn=-1
  aerror(laErr)
     MessageBox(laErr[1,2]) 
ELSE
  MESSAGEBOX('Ок')
ENDIF

SELECT * FROM table1
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114748
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос надо делать через SqlExec()

Примерно так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
lnErr = SqlExec(nConn, 'SELECT * FROM table1', 'cursor1')
IF lnErr =-1
  aerror(laErr)
     MessageBox(laErr[1,2]) 
ELSE
  sele cursor1
  browse
ENDIF
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114752
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
до select не доходит, что-то со строкой конекшина, пишет, что microsoft диспетчер драйверов ODBC источник данных не найден и не указан драйвер
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114758
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1
до select не доходит, что-то со строкой конекшина, пишет, что microsoft диспетчер драйверов ODBC источник данных не найден и не указан драйвер

Надо название драйвера указывать. Тут пишут
Код: sql
1.
... DRIVER=SQLite3 ODBC Driver; ...


Попробуй заменить на это.
Как точно драйвер называется можно посмотреть в настройках ODBC вкладка Драйверы.
Возможно надо фигурные скобки добавить, например для MS SQL у меня так прописано
Код: sql
1.
Driver={SQL Server Native Client 11.0};...
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114776
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, с помощью каких то тыков вроде получилось, правда кракозябры, сейчас ещё поэкспериментирую
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
TEXT TO lcConn NOSHOW PRETEXT 15
Driver={SQLite3 ODBC Driver};
Database=D:\TMP\data.db;
StepAPI=0;
SyncPragma=;
NoTXN=0;
Timeout=;
ShortNames=0;
LongNames=0;
NoCreat=0;
?8Ã!
ENDTEXT
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114786
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1
правда кракозябры

Строки в SQLite хранятся в кодировке UTF-8, Используй STRCONV() для преобразования.
...
Рейтинг: 0 / 0
Соединение с SQLite
    #40114801
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, STRCONV(stroka,11), сконвертировала нормально
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Соединение с SQLite
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]