| Автор |
Сообщение |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 04/02/2008 16:22:26
|
torantbor
Новичок
Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн
|
Привет всем.
1) Не мог бы кто-нибудь описать по шагам, как поставить и настроить Lua в Windows XP?
2) После вышеизложенной установки, не могли бы вы пошагово описать, как подцепить, например, sqlite3.dll в своей программе. С простейшим использованием, например, созданием таблицы.
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 04/02/2008 17:59:33
|
torantbor
Новичок
Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн
|
К чему я это спросил. Потому как столкнулся с такой проблемой. Есть код:
И есть ошибка:
Никто не может подсказать, с чем ошибка связана?
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 04/02/2008 20:14:43
|
al
ГУРУ
![[Avatar]](/forum/images/avatar/1ff1de774005f8da13f42943881c655f.png)
Зарегистрирован: 04/02/2008 20:12:56
Сообщений: 127
От: Poltava, Ukraine
Оффлайн
|
нужно в самом начале файла добавить такие строки:
package.cpath = "C:/Lua/Lib/?.dll;./lib/?.so;.\\lib\\?.dll;.\\lib\\?.dylib;"
package.path = "C:\\Lua\\?.lua;C:\\Lua\\lib\\?.lua;.\\lib\\?.lua;"
в package.cpath должна присутсвовать маска той директории где лежит sqlite3.dll,
а вообще пользуйся luasql.sqlite3
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 04/02/2008 21:37:03
|
moteus
Постоянный посетитель
Зарегистрирован: 15/01/2008 22:12:04
Сообщений: 43
Оффлайн
|
Мой файл init.lua с коментариями
в папке %LUA_PATH%\c_dir\luasql есть файл odbc.dll его можно подключить например так
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 02:38:10
|
torantbor
Новичок
Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн
|
Спасибо, развернуто ответили. Попробую сделать, как сказали.
Единственное, что мне непонятно осталось:
Есть файл odbc.dll, а подключаем мы его как?
Я правильно понял, в случае с sqlite3.dll, строка будет выглядеть так?
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 11:04:52
|
al
ГУРУ
![[Avatar]](/forum/images/avatar/1ff1de774005f8da13f42943881c655f.png)
Зарегистрирован: 04/02/2008 20:12:56
Сообщений: 127
От: Poltava, Ukraine
Оффлайн
|
В Lua оператор require понимает вложенность модулей в файловой системе.
т.е. require "luasql.odbc" может означать:
1. Модуль luasql.odbc.(dll|lua)
2. Модуль odbc.(dll|lua) в папке luasql
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 16:48:32
|
torantbor
Новичок
Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн
|
Вообщем сделал, как вы сказали.
Так вот на выделенной строчке Lua ругается:
Не подскажите в чем проблема?
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/02/2008 16:54:15
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 16:57:05
|
al
ГУРУ
![[Avatar]](/forum/images/avatar/1ff1de774005f8da13f42943881c655f.png)
Зарегистрирован: 04/02/2008 20:12:56
Сообщений: 127
От: Poltava, Ukraine
Оффлайн
|
package.cpath = package.cpath .. ';' .. BASE_DIR .. '/c_dir/luasql/?.dll'
Это убери.
И для старта попробуй переменную LUA_PATH брать не с окружения, а определить внутри скрипта
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/02/2008 16:57:48
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 17:22:37
|
torantbor
Новичок
Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн
|
Убрал из системных переменных LUA_PATH
Переделал код.
Ошибка осталась такая же.
Может поможет.
Я качал http://luaforge.net/frs/download.php/2685/luasql-2.1.1-sqlite3-win32-lua51.zip
с сайта http://luaforge.net/frs/?group_id=12. И положил его в сюда c:/prog/lua/c_dir/luasql/sqlite3.dll
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 17:22:52
|
moteus
Постоянный посетитель
Зарегистрирован: 15/01/2008 22:12:04
Сообщений: 43
Оффлайн
|
Идея следующая
То что прописано в переменной окружения LUA_INIT выполняется при запуске стандартного интерпритатора.
Я в этом скрипте устонавливаю пути до библиотек, поэтому эти пути не надо ни где больше прописывать.
Попробуй просто запустить интерпретатор и вызвать
если все нормально то просто sqlite3 не устонавливается.
Проверил.
Надо использовать luasql.sqlite3, а не sqlite3
Удачи
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/02/2008 17:29:14
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 17:32:21
|
torantbor
Новичок
Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн
|
moteus wrote:
Идея следующая
То что прописано в переменной окружения LUA_INIT выполняется при запуске стандартного интерпритатора.
Я в этом скрипте устонавливаю пути до библиотек, поэтому эти пути не надо ни где больше прописывать.
Ну с этим понятно, часто удобно. Но с этим:
Попробуй просто запустить интерпретатор и вызвать
Та же ошибка.
если все нормально то просто sqlite3 не устонавливается.
Это как понять не устанавливается? В каком смысле? И как он вообще может устанавливаться, если это библиотека, цепляемая во время работы? Не цепляется, тогда как это обойти?
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 17:43:45
|
moteus
Постоянный посетитель
Зарегистрирован: 15/01/2008 22:12:04
Сообщений: 43
Оффлайн
|
вместо
используй
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 17:51:44
|
torantbor
Новичок
Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн
|
moteus wrote:вместо
используй
Ошибка, но другая теперь:
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 05/02/2008 19:37:17
|
al
ГУРУ
![[Avatar]](/forum/images/avatar/1ff1de774005f8da13f42943881c655f.png)
Зарегистрирован: 04/02/2008 20:12:56
Сообщений: 127
От: Poltava, Ukraine
Оффлайн
|
Попробуй так:
require "luasql.sqlite3"
env = assert (luasql.sqlite3())
con = assert (env:connect("C:\test.db"))
У меня работает
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 06/02/2008 13:40:21
|
torantbor
Новичок
Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн
|
al wrote:Попробуй так:
require "luasql.sqlite3"
env = assert (luasql.sqlite3())
con = assert (env:connect("C:\test.db"))
У меня работает
Все, проблема решилась. Всем огромное спасибо за помощь. Вот конечный вариант:
Проблема была в том, что метода open() просто не существует. Ну это как я понял.
Вот ссылка на описание функций доступных в библиотеке luasql:
http://www.keplerproject.org/luasql/manual.html#introduction
Извиняюсь, что отнял ваше время.
Но я думаю этот топик поможет многим новичкам в использовании LUA.
|
|
|
 |
|
|