[Logo]
LUA Форум
  [Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Установка Lua под Windows XP  XML
Индекс форума » LUA: Общие вопросы
Автор Сообщение
torantbor
Новичок

Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн

Привет всем.

1) Не мог бы кто-нибудь описать по шагам, как поставить и настроить Lua в Windows XP?
2) После вышеизложенной установки, не могли бы вы пошагово описать, как подцепить, например, sqlite3.dll в своей программе. С простейшим использованием, например, созданием таблицы.
torantbor
Новичок

Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн

К чему я это спросил. Потому как столкнулся с такой проблемой. Есть код:


И есть ошибка:



Никто не может подсказать, с чем ошибка связана?
al
ГУРУ
[Avatar]

Зарегистрирован: 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
[Email] [ICQ]
moteus
Постоянный посетитель

Зарегистрирован: 15/01/2008 22:12:04
Сообщений: 43
Оффлайн

Мой файл init.lua с коментариями



в папке %LUA_PATH%\c_dir\luasql есть файл odbc.dll его можно подключить например так




torantbor
Новичок

Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн

Спасибо, развернуто ответили. Попробую сделать, как сказали.
Единственное, что мне непонятно осталось:

Есть файл odbc.dll, а подключаем мы его как?


Я правильно понял, в случае с sqlite3.dll, строка будет выглядеть так?
al
ГУРУ
[Avatar]

Зарегистрирован: 04/02/2008 20:12:56
Сообщений: 127
От: Poltava, Ukraine
Оффлайн

В Lua оператор require понимает вложенность модулей в файловой системе.


т.е. require "luasql.odbc" может означать:

1. Модуль luasql.odbc.(dll|lua)
2. Модуль odbc.(dll|lua) в папке luasql
[Email] [ICQ]
torantbor
Новичок

Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн

Вообщем сделал, как вы сказали.



Так вот на выделенной строчке Lua ругается:



Не подскажите в чем проблема?

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/02/2008 16:54:15

al
ГУРУ
[Avatar]

Зарегистрирован: 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

[Email] [ICQ]
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
moteus
Постоянный посетитель

Зарегистрирован: 15/01/2008 22:12:04
Сообщений: 43
Оффлайн

Идея следующая
То что прописано в переменной окружения LUA_INIT выполняется при запуске стандартного интерпритатора.
Я в этом скрипте устонавливаю пути до библиотек, поэтому эти пути не надо ни где больше прописывать.

Попробуй просто запустить интерпретатор и вызвать

если все нормально то просто sqlite3 не устонавливается.

Проверил.
Надо использовать luasql.sqlite3, а не sqlite3

Удачи

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 05/02/2008 17:29:14

torantbor
Новичок

Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн

moteus wrote:
Идея следующая
То что прописано в переменной окружения LUA_INIT выполняется при запуске стандартного интерпритатора.
Я в этом скрипте устонавливаю пути до библиотек, поэтому эти пути не надо ни где больше прописывать.

Ну с этим понятно, часто удобно. Но с этим:

Попробуй просто запустить интерпретатор и вызвать

Та же ошибка.


если все нормально то просто sqlite3 не устонавливается.

Это как понять не устанавливается? В каком смысле? И как он вообще может устанавливаться, если это библиотека, цепляемая во время работы? Не цепляется, тогда как это обойти?
moteus
Постоянный посетитель

Зарегистрирован: 15/01/2008 22:12:04
Сообщений: 43
Оффлайн

вместо

используй


torantbor
Новичок

Зарегистрирован: 15/01/2008 01:07:46
Сообщений: 29
От: Samara
Оффлайн

moteus wrote:вместо

используй






Ошибка, но другая теперь:
al
ГУРУ
[Avatar]

Зарегистрирован: 04/02/2008 20:12:56
Сообщений: 127
От: Poltava, Ukraine
Оффлайн

Попробуй так:

require "luasql.sqlite3"

env = assert (luasql.sqlite3())
con = assert (env:connect("C:\test.db"))

У меня работает
[Email] [ICQ]
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.
 
Индекс форума » LUA: Общие вопросы
Перейти:   
Powered by JForum 2.1.8 © JForum Team