myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
2 страниц V   1 2 >  
Тема закрытаНачать новую тему

> Sqlite, win32 | База данных (устаревшая полурабочая версия)

Nickolya
сообщение 29.5.2008, 12:18
Сообщение #1


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Библиотека для работы с базой данных SQLite.

Для API 1: Прикрепленный файл  PXLua_Sqlite3_0.4.1_Lua_5.1.1_SQLite_3.2.7_API1.7z ( 290.41 килобайт ) Кол-во скачиваний: 28


Для API 2 (большое спасибо alex82 за сборку, однако либа по-прежнему глючная): Прикрепленный файл  PXLua_SQLite_0.4.1_Lua_5.1.3_SQLite_3.2.7_API2.7z ( 579.51 килобайт ) Кол-во скачиваний: 73


Исходники SQLite v3.2.7: Прикрепленный файл  PXSqlite3_SQLite_3.2.7_src.7z ( 350.06 килобайт ) Кол-во скачиваний: 14
Причина редактирования: ЭТА БИБЛИОТЕКА РАБОТАЕТ НЕ ПРАВИЛЬНЫМ ОБРАЗОМ
Go to the top of the page
+Quote Post
BIMMER71
сообщение 5.6.2008, 8:43
Сообщение #2


Реклама от Google
****

Группа: Модераторы
Сообщений: 164
Регистрация: 19.5.2008
Из: г.Тула
Пользователь №: 3
Спасибо сказали: 4 раза




А какие возможности даёт эта библеотека=)?
Go to the top of the page
+Quote Post
Nickolya
сообщение 5.6.2008, 23:02
Сообщение #3


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Димон, если не понимаешь сути базы данных, зачем спрашивать? big_smile.gif

Эта библиотека позволяет работать с базами данных SQLite. Подробнее - или в инете, или позже тут. Сам я пока пробовал сделать скрипт с использованием этой библиотеки, но, видимо, попытка неудачна, при тесте на рабочем хабе, скрипт выдает ошибку, хотя на тестовом всё нормально... Видимо беда в каких-то символах или еще в чем-то, будем разбираться, ибо база данных - очень удобная вещь. big_smile.gif
Go to the top of the page
+Quote Post
Nickolya
сообщение 20.6.2008, 17:30
Сообщение #4


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Цитата(Setuper @ 20.6.2008, 16:22) *
Это для нового апи 0.4 ???

Если да, то не пашет она!
С какого сайта взята эта библиотека?

Да. С The PtokaX Portal'а взята, а именно отсюда: Extensions for PXLUA
Go to the top of the page
+Quote Post
Jaska
сообщение 20.6.2008, 21:06
Сообщение #5


Освоившийся участник
*****

Группа: Администраторы
Сообщений: 344
Регистрация: 2.6.2008
Из: RB,Ufa
Пользователь №: 8
Спасибо сказали: 106 раз




Ооо) дождались. А дебаг криптография и прочая бурда тоже есть? =) Кста ты еще не надумал юзеринфо переводить под 0.4 ?
Go to the top of the page
+Quote Post
Nickolya
сообщение 21.6.2008, 11:15
Сообщение #6


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Цитата(Jaska @ 20.6.2008, 22:06) *
Ооо) дождались. А дебаг криптография и прочая бурда тоже есть? =) Кста ты еще не надумал юзеринфо переводить под 0.4 ?

Надумал... Легко сказать! big_smile.gif Надо еще полностью разрулить этого зверя, ведь и под 1 апи скрипт не работает... big_smile.gif Х3 почему никто не отписывает что не пашет это чудо-творение.
А библиотеки я сюда пока выкладываю по мере необходимости для некоторых скриптов.
Go to the top of the page
+Quote Post
Nickolya
сообщение 21.6.2008, 16:59
Сообщение #7


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Сейчас пробовал еще работать с библиотечкой.
Прикол в том, что на 0.4.0.0 всё как часы, данные заносятся и извлекаются из бд простеньким тестовым скриптом, он есть в архиве с библиотекой, выглядит вот так:

Код
require "SQLite3"

local db = sqlite3.open_memory()

db:exec[[
  CREATE TABLE test (id INTEGER PRIMARY KEY, content);

  INSERT INTO test VALUES (NULL, 'Hello World');
  INSERT INTO test VALUES (NULL, 'Hello Lua');
  INSERT INTO test VALUES (NULL, 'Hello Sqlite3')
]]

for row in db:rows("SELECT * FROM test") do
  Core.SendToAll("row.id = "..row.id.."\t\trow.content = "..row.content)
end

Но на 0.4.1.0 вот такая ошибка:

Цитата
Синтаксис C:\0.4.1.0\libs\SQLite3.lua:165: attempt to index upvalue 'api' (a nil value)

При инициализации библиотеки, если вывести ошибку в чат получаем вот это: "Не найден указанный модуль."

В SQLite3.lua инициализация выглядит так:

Код
local init, error = package.loadlib("pxsqlite3", "luaopen_pxsqlite3")

local api, ERR, TYPE, AUTH

if init then
  api, ERR, TYPE, AUTH = init()
end

В библиотеке либо изменена функция, теперь она не luaopen_pxsqlite3, а какая-то еще, либо в PXLua.dll опять что-то изменили. :\
Go to the top of the page
+Quote Post
Nickolya
сообщение 23.6.2008, 10:25
Сообщение #8


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Цитата(Setuper @ 23.6.2008, 10:43) *
Ура Наконецто можно перейти на новый апи. У меня все работает.

Setuper, а ты свои библиотеки никогда не компилировал??? А то хотелось бы, но в этом я просто ноль. Как-то на форуме птоки нашел я вот это, но ничего так и не вышло...

Цитата
A guide on howto create a extension for PXLua ?

Actually its rather easy

C++ lib for Lua 5.1:

Код
#pragma comment(lib, "PXLua.lib")

extern "C" { // we dont need all of them in this sample, but does not hurt to include all
#  include "lua.h"
#  include "lualib.h"
#  include "lauxlib.h"
};

// The HelloWorld lua function
int lua_helloworld (lua_State *L) {
  if (lua_gettop(L) != 0) { // check no of arguments - we expect none (we dont need to do this in this case, but its just to show how)
    luaL_where(L,1); // at witch line did the error happen in the script
    lua_pushliteral(L, "Function should be called without arguments!"); // push the message
    lua_concat(L, 2); // concat; merge the where-message and the error-message
    lua_error(L); // halt the script and display the message
  }

  lua_pushstring(L, "Hello World!");
  return 1; // the number of objects we pushed onto the stack
}

// table of methods to register
static const luaL_reg our_methods[] = {
  {"FunctionName", lua_helloworld},
  {0,0}
};

// Lua entry point when loading
int __declspec(dllexport) libinit (lua_State* L) {
  luaL_register(L, "TableName", our_methods);
  return 0;
}


-- EOF --

The script:

Код
libinit = package.loadlib("px_helloworld.dll", "_libinit") // the existance of "_" in the entrypoint depends on you compiler options.
libinit()

retval = TableName.FunctionName()
SendToAll(retval)

-- EOF --

Ну и может расскажешь, что за SBot, уже даже 7.0RC1?!
И ну очень был бы тебе благодарен если бы ты поделился опытом работы с SQLite, может даже мануал в этом разделе бы создал? big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 23.6.2008, 10:36
Сообщение #9


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Сам пытался писать библиотеки, точнее пытался править код уже написанных - потом компилил исправленный код, но в итоге после того, как компилятором была выброшена длл, подключал её к PtokaX но ничего не работало. Хотя "простейшие" длл библиотеки могу писать - работают.
Go to the top of the page
+Quote Post
Nickolya
сообщение 23.6.2008, 12:22
Сообщение #10


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Цитата(Setuper @ 23.6.2008, 10:36) *
Сам пытался писать библиотеки, точнее пытался править код уже написанных - потом компилил исправленный код, но в итоге после того, как компилятором была выброшена длл, подключал её к PtokaX но ничего не работало. Хотя "простейшие" длл библиотеки могу писать - работают.

Вот можно такой авторский мануальчик по "простейшим" DLL? Типа того HelloWorld, что я постил.

И если не трудно, еще как работает эта вот связка: прикладная программа - скрипт?! А то робокопа ни разу не включал...
Go to the top of the page
+Quote Post
Setuper
сообщение 23.6.2008, 17:03
Сообщение #11


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Цитата(Nickolya @ 23.6.2008, 13:22) *
Вот можно такой авторский мануальчик по "простейшим" DLL? Типа того HelloWorld, что я постил.

И если не трудно, еще как работает эта вот связка: прикладная программа - скрипт?! А то робокопа ни разу не включал...

а какие проблемы в том что ты запостил? там все работает. длл скомпилить у меня получилось. Или ты хочешь чтобы я подробно рассказал что там делается?

насчет прикладной программы: это программа, написанная на с++ - так сказать с понятным интерфейсом в виде окошек. С помошью такой прикладной программы можно не включать клиент дц а например смотреть информацию о пользователях через эту программу введя в поле ип адрес или ник пользователя, да ваобще через программу можно управлять хабом (точнее скриптом). Можно также банить, менять настройки, отправлять массовые сообщения, менять правила, вставлять описания, одним нажатием кливишы создавать новые контекстные менюшки хаба и тд и тп - всего и не перечислишь что можно сделать.
Go to the top of the page
+Quote Post
Nickolya
сообщение 23.6.2008, 17:16
Сообщение #12


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Просто в этом я нуп, пробовал я долго и усердно, но не вышло...
Реально интересуют пошаговые инструкции для компилирования, какой компилятор (я себе поставил Microsoft Visual Studio 2008), и прочее, что может к этому относиться.

Цитата
И если не трудно, еще как работает эта вот связка: прикладная программа - скрипт?! А то робокопа ни разу не включал...

Это-то я знаю, меня интересует именно раелизация этой связки, как я предполагаю, эта программа подсоединяется как юзер на хаб и передает команды, которые уже обрабатываются скриптом.

И, Setuper, огромное спасибо тебе за готовность помогать, делиться своими знаниями и опытом! ;)
Go to the top of the page
+Quote Post
NikseR
сообщение 21.12.2008, 3:23
Сообщение #13


Продвинутый участник
****

Группа: Пользователи
Сообщений: 135
Регистрация: 18.7.2008
Из: г. Москва
Пользователь №: 219
Спасибо сказали: 25 раз




Народ, подскажите, файлы и папки из распакованного архива PXLua-SQLite-0.4.1-SQLite-3.5.6.7z пихать в папку libs или в заглавную папку с птокой?
Go to the top of the page
+Quote Post
KauH™
сообщение 21.12.2008, 3:33
Сообщение #14


lua-паддаван
***

Группа: Пользователи
Сообщений: 75
Регистрация: 1.7.2008
Из: www.u-l.ru
Пользователь №: 114
Спасибо сказали: 29 раз




будут работать и там и там
Go to the top of the page
+Quote Post
sphinx
сообщение 2.2.2009, 1:22
Сообщение #15


Активный участник
***

Группа: Заблокированные
Сообщений: 87
Регистрация: 16.10.2008
Пользователь №: 805
Спасибо сказали: 35 раз




PPK выложил обновление библиотек

http://www.czdc.org/PtokaX/Libs-0.4.0.0/PX...QLite-3.6.10.7z
http://www.czdc.org/PtokaX/Libs-0.4.0.0/PX...e-3.6.10-src.7z
Go to the top of the page
+Quote Post
mariner
сообщение 2.2.2009, 1:25
Сообщение #16


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




ну да... таки выложил big_smile.gif А я на линуксе уже 4 месяца без них живу и скулайт работает... странно, оторвался от сообщества.
Go to the top of the page
+Quote Post
Wariner
сообщение 3.2.2009, 11:44
Сообщение #17


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




Рано я обрадовался... В целом для виндовой птоки, по моему, ничего не изменилось! Как не мог создать две таблицы так и сейчас токо одна создаётся!!!
PS: 2Setuper: Илюх, что ты думаешь по этому поводу? Ощущаю резкую потребность в БД но ставить MySQL тоже как то не очень хочется((( Будет ли решение этой проблемы?
Go to the top of the page
+Quote Post
mariner
сообщение 3.2.2009, 12:14
Сообщение #18


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




да, оно зовется линукс (с)

в нем вся коровья суперсила!
Go to the top of the page
+Quote Post
sphinx
сообщение 5.2.2009, 4:40
Сообщение #19


Активный участник
***

Группа: Заблокированные
Сообщений: 87
Регистрация: 16.10.2008
Пользователь №: 805
Спасибо сказали: 35 раз




Код
--[[

    SQLite3 Example script by Mutor

]]

-- Admins nick for status / error messages
local OpNick = "Mutor"
-- Subdir of scripts folder ["" = scripts folder]
local path = "sql/"
-- Database file name ["" = hubname.db"]
local file = ""
-- Database timeout, in seconds
local to = 3
-- Delete file on script exit? true/false
local DelFile = true

require "sqlite3"

OnStartup = function()
    local root = Core.GetPtokaXPath().."scripts/"
    if #path > 0 then path = root..path else path = root end
    if #file == 0 then file = path..SetMan.GetString(0):gsub(" ","_")..".db" else file = path..file end
    if Update() then OnError(file.." has been updated.") else OnError(file.." failed to update.") end
end

OnError = function(msg)
    if msg and #msg > o then
        local user,bot = Core.GetUser(OpNick),SetMan.GetString(21)
        if user and bot then
            Core.SendToUser(user,"<"..bot.."> "..msg.."|")
        end
    end
end

OnExit = function()
    if DelFile then
        assert(os.remove(file))
    end
end

Update = function()
    db = sqlite3.open(file)
    db:set_busy_timeout(to)
    db:exec("CREATE TABLE HubUsers (Nick TEXT, IP TEXT, Profile NUMERIC);")
    local t = {"Nick","IP","Profile"}
    for x,user in ipairs(Core.GetOnlineUsers()) do
        db:exec("INSERT INTO HubUsers ( Nick, IP, Profile ) VALUES ('"..user.sNick.."', '"..user.iProfile.."', '"..user.sIP.."');");
    end
    db:exec('commit')
    ReadDb(db)
    db:close()
    return true
end

ReadDb = function(db)
    for _, nick,profile,ip in db:cols("SELECT 1, * FROM HubUsers") do
        OnError("[ "..nick.." ] "..profile.." "..ip.."|")
    end
end

------ End of Code ------
Go to the top of the page
+Quote Post
Wariner
сообщение 5.2.2009, 10:39
Сообщение #20


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




2sphinx: а ты не мог бы передать мутору чтоб он написал пример скрипта с созданием двух таблиц в одной БД и запросами типо АПДЕЙТ, или СЕЛЕКТ с параметром WHERE?
Go to the top of the page
+Quote Post

2 страниц V   1 2 >
Тема закрытаНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Sqlite
Unix | База данных
3 Setuper 10 719 10.2.2016, 21:15 Посл. сообщение: Alexey
No New Posts Запрос в базу данных sqlite клиента
Запрос и экспорт данных из базы данных sqlite клиента
9 derschaman 14 456 5.1.2011, 2:03 Посл. сообщение: Nickolya
No new Topic has attachmentsUserinfo [ By Nickolya ] [ Sqlite Db ] [ Lua5.1 ] [ Api 1 ]
API1 | Скрипт оффлайн информации по юзерам
20 Nickolya 26 072 2.11.2010, 9:05 Посл. сообщение: kool
No New Posts От: Дополнительные Библиотеки: Sqlite
От темы с ID: 7
12 BIMMER71 15 643 5.2.2009, 10:53 Посл. сообщение: Setuper
No New Posts Web Статистика С Использованием Единой Базы Данных Sqlite
1 Jaska 6 648 23.9.2008, 14:25 Посл. сообщение: Setuper

 



RSS Сейчас: 28.3.2024, 11:41