Вопросы Разработчикам Скриптов с SQL, вопросы по скриптам (мелкие вопросы) |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы Разработчикам Скриптов с SQL, вопросы по скриптам (мелкие вопросы) |
26.2.2009, 16:47
Сообщение
#21
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
в чём здесь ошибка? точнее почему если написать заданную строку "ыыыыы" вместо sRusMsg запись в БД производится в противном случае нет?
Код function OnError(sMsg) local sRusMsg = "" local tRusError = { ["bad argument"] = "плохой аргумент", ["string expected"] = "ожидается строка", } for i,v in pairs(tRusError) do sRusMsg = string.gsub(sMsg, i, v) end Core.SendToAll(sRusMsg) db:exec("CREATE TABLE le"..os.date("%d%m%Y").." (id INTEGER PRIMARY KEY, Time TEXT, Error TEXT)") db:exec("INSERT INTO le"..os.date("%d%m%Y").." (Time,Error) VALUES ('"..os.date("%H:%M:%S").."', '"..sRusMsg.."')") end и это не пашет Код function CheckBans(tUser) if tUsers[tUser.sIP].Ban then if tUsers[tUser.sIP].Ban.Time == "full" then Core.SendToUser(tUser, "<"..sBot.."> \r\n\r\n\t\t\tВы навсегда забанены на этом хабе \r\n\t\t\tПо причине: "..tUsers[tUser.sIP].Ban.Reason.."\r\n\t\t\tНаказал:"..tUsers[tUser.sIP].Ban.Punished.."\r\n") db:exec("CREATE TABLE ldu"..os.date("%d%m%Y").." (id INTEGER PRIMARY KEY, Time TEXT, Nick TEXT, IP TEXT, Reason TEXT)") db:exec("INSERT INTO ldu"..os.date("%d%m%Y").." (Time,Nick,IP,Msg) VALUES ('"..os.date("%H:%M:%S").."', '"..tUser.sNick.."', '"..tUser.sIP.."', 'Навсегда забанен')") Core.Disconnect(tUser) а вот это работает Код if tCfg.MainLogs == 1 then
local _,_,sData = string.find(sData, "%b<>%s+(.*)") db:exec("CREATE TABLE lmc"..os.date("%d%m%Y").." (id INTEGER PRIMARY KEY, Time TEXT, Nick TEXT, IP TEXT, Msg TEXT)") db:exec("INSERT INTO lmc"..os.date("%d%m%Y").." (Time,Nick,IP,Msg) VALUES ('"..os.date("%H:%M:%S").."', '"..tUser.sNick.."', '"..tUser.sIP.."', '"..sData.."')") end |
|
|
26.2.2009, 17:33
Сообщение
#22
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Не знаю в чем причина надо разбираться в содержимом команды. Возможно где-то присутствуют не экранированные символы, или знак одиночной кавычки.
|
|
|
26.2.2009, 19:05
Сообщение
#23
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
с фуенкцией эроров разобрался а вот со второй нет((( какие могут влиять символы и чем их экранировать?
|
|
|
27.2.2009, 0:36
Сообщение
#24
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Ну и в чём была причина?
Вторая функция по идее тоже должна пахать. |
|
|
27.2.2009, 18:55
Сообщение
#25
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
в эррорах действительно была одинарная кавычка, а во второй просто моя невнимательность...
|
|
|
28.2.2009, 23:00
Сообщение
#26
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Что то со скулайтом у меня проблемы на каждом шагу. Теперь не работает апдейт таблицы. вроде внимательно посмотрел как было аписанно в середине этой темы, но не пашет(((
Код function UserDisconnected(tUser) db:exec("UPDATE Users SET Offdate='"..os.date("%d.%m.%Y в %H:%M").."' WHERE IP='"..tUser.sIP.."'") end таблица такая: Код db:exec("CREATE TABLE Users (id INTEGER PRIMARY KEY, Nick TEXT, IP TEXT, Shara NUMERIC, Msg NUMERIC, Time NUMERIC, Enterdate TEXT, Offdate TEXT, Bantime TEXT, Banreason TEXT,".. "Banpunished TEXT, Gagtime TEXT, Gagreason TEXT, Gagpunished TEXT, Gagtype TEXT, Downloadtime TEXT, Downloadreason TEXT, Downloadpunished TEXT, Seachtime TEXT, Seachreason TEXT,".. "Seachpunished TEXT)") и ещё можно ли инсертить в столбцы таблицы по отдельности? |
|
|
1.3.2009, 1:41
Сообщение
#27
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Условие должно проверяться по уникальному столбцу. Столбец IP не является у тебя уникальным. Уникальным столбцом у тебя является первичный ключ, то есть id. Поэтому в твоём случае есть 2 варианта:
либо писать так: Код "UPDATE Users SET Offdate='"..os.date("%d.%m.%Y в %H:%M").."' WHERE id='"..id.."'" либо делать столбец ip адреса уникальным: Код "CREATE TABLE Users (id INTEGER PRIMARY KEY, Nick TEXT, IP TEXT UNIQUE, ...
|
|
|
2.3.2009, 15:56
Сообщение
#28
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
либо делать столбец ip адреса уникальным: Код "CREATE TABLE Users (id INTEGER PRIMARY KEY, Nick TEXT, IP TEXT UNIQUE, ... это не помогло((( Код db:exec("CREATE TABLE Users (id INTEGER PRIMARY KEY, Nick TEXT, IP TEXT UNIQUE, Shara NUMERIC, Msg NUMERIC, Time NUMERIC, Enterdate TEXT, Offdate TEXT, Bantime TEXT, Banreason TEXT,".. "Banpunished TEXT, Gagtime TEXT, Gagreason TEXT, Gagpunished TEXT, Gagtype TEXT, Downloadtime TEXT, Downloadreason TEXT, Downloadpunished TEXT, Seachtime TEXT, Seachreason TEXT,".. "Seachpunished TEXT)") может в синтаксисе где ошибка, так как поле ип не стало уникальным? с id работает но лучшеб чтоб сразу по ип определяло |
|
|
2.3.2009, 16:42
Сообщение
#29
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Да... что-то по-прежнему библиотека работает неправильно!
|
|
|
2.3.2009, 16:50
Сообщение
#30
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ты сам проверил или делаешь выводы на основании моих постов? Если второе то лучше проверь я мог накасячить.
|
|
|
2.3.2009, 16:56
Сообщение
#31
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Сам я не использую пока новую версию библиотеки.
Проверив работу либы, можно заключить, что работать с такой библиотекой невозможно! Команда CREATE и INSERT работают правильно Не работают команды DROP и UPDATE Поэтому по-прежнему единственно рабочая библиотека - это библиотека под API 1. |
|
|
2.3.2009, 17:51
Сообщение
#32
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
не ну если по id то то апдейт работает. гемор конечно но всё же. можно ли апдейтить сразу несколько позиций?
|
|
|
2.3.2009, 17:58
Сообщение
#33
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Частичная работа каких-то команд - это не выход.
Если мне удастся скомпилить хотя бы одну простейшую либу, то я покапаюсь и посмотрю в чем может быть причина. При удачном стечении обстоятельств возможно даже скомпилю с исходниками более свежей версии sqlite 3.6.1 |
|
|
2.3.2009, 19:42
Сообщение
#34
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
возможно не выход, но основу то наверно написать можно.
PS: надеюсь рабочая либа будет скоро)))) Setuper, как бы ты посоветовал сделать топ сообщений на основе бд? Всё таки отправлять запрос к базе при каждом сообщении наверно не оптимизировано |
|
|
2.3.2009, 20:04
Сообщение
#35
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Setuper
Возможно, я накосячил при переносе исходников в C++ Builder. Если мне таки удастся найти работоспособный Visual C++, то попробую собрать им. |
|
|
2.3.2009, 21:35
Сообщение
#36
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Скомпилил новую версию либы 3.6.11
Сейчас протестирую и выложу. По первым тестам вроде всё работает. |
|
|
3.3.2009, 18:47
Сообщение
#37
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ждёмс......
меня щас разорвёт от ожидания xDDDDDDDDDDDDD |
|
|
3.3.2009, 20:07
Сообщение
#38
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
К сожалению по-прежнему получается левая либа, не создающая более 1 таблицы(((
|
|
|
3.3.2009, 20:24
Сообщение
#39
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
печально((( Значит буду пользовать либу от алекса.
2Setuper: подскажи как получить значение конкретной ячейки в таблице т.е есть id nick ip msg 1 nik1 ip1 10 2 nik2 ip2 20 3 nik3 ip3 30 и как мне отсюда получить количество сообщений второго юзера. я туплю уже 2 часа |
|
|
3.3.2009, 21:48
Сообщение
#40
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код SELECT msg FROM table WHERE ip = 'ip2'
|
|
|
Похожие темы
|
Сейчас: 27.11.2024, 2:54 |