| 
 | 
Здравствуйте, гость ( Вход | Регистрация )
| 
 | 
|    9.3.2009, 19:37 
				 Сообщение
					#1
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				DLL библиотека для работы с базой данных MySQL 5. Версия lua: 5.1 Версия API: 2 Разрядность ОС: 32 Протестировано на PtokaX 0.4.1.1 Копирайт: Copyright © 2003-2007 Kepler Project LuaSQL is a simple interface from Lua to a DBMS Версия: LuaSQL 2.1.1 В связи с непонятной работой sqlite предлагаю перейти на стабильную и отчасти более функциональную базу данных. Хоть преимуществом sqlite и является работа на локальном компьютере и легкая переносимость, однако весь мир использует mysql и надо отдать должное - mysql великолепен! Теперь о содержимом библиотеки. Я прикладываю rar архив. В нём dll файл libmysql.dll и папка luasql с dll файлом mysql.dll. Обе эти дллелки нужны для работы бд. Распаковываем архив в папку, где лежит файл ptokax.exe (или в папку libs), и ничего никуда не перемещаем. После этого запускаем скрипт для тестирования. Основные функции для работы с mysql в lua 
 Объект - соединение (conn) 
 Объект - курсор (cur) 
 Как работать с таблицами для достижения большей производительности 
 -------------------- Если у вас нет mysql сервера, то качаем его, например отсюда: (файл mysql-5.0.67-win32.zip) Для удобного администрирования там же можно скачать утилиту mysqlgui-win32-static MySQL распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Архив с библиотеками под PtokaX 0.4.*.*:  mysql.rar ( 541.42 килобайт )
Кол-во скачиваний: 1673 Скрипт примера работы с MySQL в LUA:  mysql_test.lua ( 1.63 килобайт )
Кол-во скачиваний: 458 | 
|  | |
|  | 
|  9.3.2009, 20:02 
				 Сообщение
					#2
					
				
			 | |
|  Главный ра******й тут...          Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 777 раз  | 
				Угу, а где архив?   И есть ли хотя бы справка по функциям? | 
|  | |
|  9.3.2009, 21:27 
				 Сообщение
					#3
					
				
			 | |
|  Местная ТехПоддержка           Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз  | 
				кстати, Илья (Я к сетаперу) - я так думаю, что тем же способом, что и sqlite, в линукс подрубается mysql! У меня require "luasql.mysql" без ошибок пашет   ) PS пора делать скрипты с SQLite и MySQl! | 
|  | |
|  9.3.2009, 21:42 
				 Сообщение
					#4
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				надо токо пока не получается
				
				
				
			 | 
|  | |
|  9.3.2009, 22:03 
				 Сообщение
					#5
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				Простите, забыл приложить архив - исправлено   mariner: я не сомневаюсь в этом. Именно эту самую библиотеку я и скомпилил под винду. Поэтому скрипты можно писать кроссплатформенные. | 
|  | |
|  9.3.2009, 22:28 
				 Сообщение
					#6
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				всё таки SQLite в каком то роде предпочтительнее, не все же имеют MySQL сервер....
				
				
				
			 | 
|  | |
|  9.3.2009, 22:40 
				 Сообщение
					#7
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				Поверь, "мускул" имеет гораздо большие возможности по сравнения со "скулой". Sqlite многие даже не считают за базу данных))) Когда-то давно (2 года назад) я писал базы данных под MSSQL и под mysql и не знал, что существует какой-то там sqlite, потому как он не очень широко распространён среди программистов, которые пишут большие и стабильные программы на базе взаимодействия клиент-сервер. Неужели так сложно поставить мускул? Инструкцию по установки что ли накатать? | 
|  | |
|  9.3.2009, 23:26 
				 Сообщение
					#8
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				думаю их полно в инете. Хотелось бы увидеть несколько скриптов  с открытым кодом работающих с базой данных! Например простенький топ сообщений! Накидаешь Илюх?    | 
|  | |
|  9.3.2009, 23:32 
				 Сообщение
					#9
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				Постараюсь в ближайшее время что-то подобного рода изобразить    | 
|  | |
|  10.3.2009, 20:09 
				 Сообщение
					#10
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				Тестовый скрипт удачно запущен совместно с Денвером! Единственное базу пришлось создавать ручками.  PS: есть ли сайты повещённые взаимодействию MySQL и Lua? | 
|  | |
|  10.3.2009, 20:24 
				 Сообщение
					#11
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				Базу естественно надо создавать вручную, а потом только к ней коннектиться. Для создания базы лучше всего использовать утилиту mysqlgui-win32-static (см. первый пост). Всё что нужно знать по взаимодействию mysql и lua написано в первом посте. | 
|  | |
|  10.3.2009, 20:42 
				 Сообщение
					#12
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | |
|  | |
|  10.3.2009, 21:07 
				 Сообщение
					#13
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				Хм... странно из-за чего бы это ей не работать? В общем базу можно создать многими способами, хоть через командную строку)))) | 
|  | |
|  10.3.2009, 21:40 
				 Сообщение
					#14
					
				
			 | |
|  Местная ТехПоддержка           Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз  | 
				да, командная строка наше фсио ) (я думаю ты уже догадался, что я console user) PS я готов выложить обновленные пакеты   ) | 
|  | |
|  11.3.2009, 17:21 
				 Сообщение
					#15
					
				
			 | |
|  Местный        Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз  | 
				При выборке данных из таблицы числовые значения возвращаются как строки. Так и должно быть, или я что-то не так делаю?
				
				
				
			 | 
|  | |
|  11.3.2009, 17:23 
				 Сообщение
					#16
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				да. Преобразование в нужные типы нужно делать самому, я об этом писал в первом посту (читай "Метод извлечения результатов")
				
				
				
			 | 
|  | |
|    14.3.2009, 14:23 
				 Сообщение
					#17
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				Свистопляска с кодировками MySQL Начиная с версии 4.1 появилась возможность устанавливать кодировку на уровне сервера, базы данных, таблицы, столбца. Также появились переменные, которые определяют кодировку клиента (character_set_client), соединения (character_set_connection) и результата (character_set_results). Например, когда вы добавляете данные в таблицу, MySQL проверяет кодировку клиента (вы можете посмотреть ее, проверив значение переменной character_set_client) и использует ее для определения того, в какой кодировке вы передаете серверу данные. Переменная character_set_connection используется для определения кодировки для литералов, у которых она не определена и при преобразовании числа в строку. Это значит, что если у вас данные в кодировке cp1251, то для корректной передачи данных необходимо чтобы character_set_client и character_set_connection были установлены в cp1251. Во все три выше перечисленные параметры можно установить кодировку одним запросом к MySQL: Код SET NAMES cp1251Это эквивалентно трём следующим командам: Код SET character_set_client=cp1251 SET character_set_connection=cp1251 SET character_set_results=cp1251 Однако, этой всей свистопляски можно и не делать если установить кодировки по умолчанию. Кодировки по умолчанию устанавливаются в файле my.ini, который находится в директории установленного вами мускула. В данном файле, в соответствующих "разделах", дописывается следующее: Код [client] default-character-set=cp1251 character-sets-dir="C:/MySQL/share/charsets/" Код [mysql] default-character-set=cp1251 Код [mysqld] default-character-set=cp1251 default-collation=cp1251_general_ci character-sets-dir="C:/MySQL/share/charsets/" init-connect='SET NAMES cp1251' Внимание! Прописанная настройка init-connect, позволяет не прописывать каждый раз при коннекте к базе данных команду "SET NAMES cp1251", о которой говорилось выше, НО эта настройка не будет выполняться для пользователей, у которых есть привилегия SUPER. Команда для просмотра кодировок: Код SHOW VARIABLES LIKE 'char%'; Использование: Код require"luasql.mysql" local env = assert(luasql.mysql()) local con = assert(env:connect("название_бд", "пользователь", "пароль_пользователя", "localhost")) local cur = assert(con:execute"SHOW VARIABLES LIKE 'char%'") local row = cur:fetch({}, "n") while row do Core.SendToAll(string.format("Variable_name: %s, Value: %s", row[1], row[2])) row = cur:fetch(row, "n") end cur:close() con:close() env:close() И последнее... При создании базы данных нужно также указывать кодировку создаваемой базы: Код CREATE DATABASE IF NOT EXISTS `my_dc_base` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; Соблюдая все вышеизложенные факты, корректная работа базы данных обеспечена! | 
|  | |
|  15.3.2009, 6:49 
				 Сообщение
					#18
					
				
			 | |
|  Освоившийся участник      Группа: Пользователи Сообщений: 314 Регистрация: 13.10.2008 Пользователь №: 791 Спасибо сказали: 9 раз  | 
				если у кого нить есть исходники птоки то можно переписать код чтобы она сразу работала с БД и не с хмл файлами. а в настройках просто добавить ещё 4 опции: адрес, имя пользователя, пароль, префикс таблиц...
				
				
				
			 | 
|  | |
|  15.3.2009, 7:59 
				 Сообщение
					#19
					
				
			 | |
|  Местный        Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз  | если у кого нить есть исходники птоки то можно переписать код чтобы она сразу работала с БД и не с хмл файлами. а в настройках просто добавить ещё 4 опции: адрес, имя пользователя, пароль, префикс таблиц...Исходники есть у PPK. Но он скорее всего пошлёт тебя если попросишь. Если хорошо постараться, то можно и без исходников прикрутить к птоке MySQL. | 
|  | |
|  15.3.2009, 14:11 
				 Сообщение
					#20
					
				
			 | |
|  Освоившийся участник      Группа: Пользователи Сообщений: 314 Регистрация: 13.10.2008 Пользователь №: 791 Спасибо сказали: 9 раз  | 
				и будет обычная птока только с плагином мускуля...  может кто нить напишет PPK что бы вышла птока которая не только как сервис, но как сервис с самостоятельным доступом к БД. а не через(пусть и хорошо написанный) плагин. | 
|  | |
|   | 
 Похожие темы
 Похожие темы
|   | Сейчас: 28.10.2025, 20:16 |