Пятница, 22.11.2024, 08:06 Приветствую Вас Гость


клан "Alivariya" на la2.cosmostv.by

Главная | Регистрация | Вход | RSS
Меню сайта
Категории раздела
Все о Lineage2 [92]
ну название категории говорит само за себя)
Ла юмор [7]
приколы о ЛА
Квесты [29]
палезные и нужные квесты в ЛА
Клан [2]
описание состава клана и его устава
смешные истории [23]
все время читать играть и думать о ла вредно) просто сборка смешных историй
3 профы в La 2 [33]
все 3 профы включая камаэлей
клан холы в L2 [10]
Информация о баффах, common craft, телепортах и тд в них
для GMов и админов [14]
все самое нужное и полезное
1 профы в La2 [19]
все первые профы
2 профы в La2 [35]
все вторые профы,включая камаэлей
прохождения игр [58]
прохождение компьютерных игр
Гайды [6]
по Lineage 2
Мини-чат
200
Наш опрос
Куда вы водите/водили девушку на романтическое свидание?
Всего ответов: 211
Статистика

Онлайн всего: 21
Гостей: 21
Пользователей: 0
Форма входа
Главная » Статьи » для GMов и админов

MySQL
Необходимо скачать MyODBC и установить, после этого в Access в базе данных - "создать / связь с таблицами" - тип файлов указываем ODBC . Для обновления таблиц удобно пользоваться служебной утилитой Access2000 "Сервис / Служебные программы / Диспетчер связанных таблиц".

#!/usr/local/bin/perl
use DBI;
$table = "table"; $db = "base"; $db_serv = "192.168.0.1"; $user = "user"; $passwd = "password";
$c = DBI->connect("DBI:mysql:$db:$db_serv", $user, $passwd);
$statement = "select count(*) from $table";
$cc = $c->prepare($statement);
$ccc = $cc->execute;
@row = $cc->fetchrow_array;
$n = $row[0];
$statement = "select * from $table";
$cc = $c->prepare($statement);
$ccc = $cc->execute;
open F, "$ARGV[0]";
for ($i=0; $i<$n; $i++) {
@row = $cc->fetchrow_array;
print F "$row[0];$row[1];$row[3]\n";
}
Запускаем скрипт:
./mysql_2_exel.pl file
После этого можно открыть файл 'file' экселем.

Необходимо воспользоваться LIMIT. Первый параметр с какой записи, а второй сколько.
select * from table LIMIT 1,1;

Подключите к проекту libMySql.lib, положите заголовочные файлы из поставки MySQL в директорию заголовочных файлов вашего компилятора, либо в каталог с программой, либо вообще куда душе угодно (лишь бы сами их не потеряли), libmysql.dll в каталог с программой, и пользуетесь функциями API MySQL, которые подробнейшим образом описаны в поставляемой вместе с сервером документацией. libmysql.lib и libmysql.dll берутся после установки дистрибутива MySQL в каталоге lib\opt.
libmysql.lib ОБЯЗАТЕЛЬНО должен работать с libmysql.dll ТОЙ ЖЕ поставки/версии. По этой причине НАСТОЯТЕЛЬНО НЕ рекомендуется хранить libmysql.dll в системном каталоге WINDOWS! Храните свою libmysql.dll в каталоге со своей программой.
Для C++ Builder получить libmysql.lib нужно импортом из libmysql.dll:
> implib libmysql.lib libmysql.dll
Из заголовочных файлов требуются:
mysql.h
mysql_com.h
mysql_version.h
В последних версиях ещё и my_alloc.h
Всё это добро берётся после установки дистрибутива MySQL в каталоге include.
Из всех в программе подключается только mysql.h. Перед ним обязательно должно быть подключен windows.h
#include
#include
Особенности Билдеровского VCL: В программах, использующих VCL, компилятор ругается на my_socket, объявленную в mysql.h как #define my_socket SOCKET. Заменяем на #define my_socket UINT_PTR и всё работает. (SOCKET в winsock.h объявлен как typedef UINT_PTR SOCKET).

1. Физический надо посмотреть размер 3 файлов на винте и сложить.
2. Фактический - получить количество строк, умножить на сумму объемов данных всех полей.
3. Реальный - получить все записи с данными и пройтись по ним, посчитав размер

Данное сообщение говорит о том, чтго вы превысили лимит разрешенных открытых одновременно коннекций к базе данных. Есть два пути решения:
первый - увеличить в настройках базы MySQL количество разрешенных коннектов; второй - проверить код вашей программы, чтобы после открытия коннекта к базе он всегда закрывался например для PHP это будет выглядить следующем образом:
PHP Code
mysql_close($dbh);

$dbh - коннект к базе.
Конкретные задачи и их решения:
Задача 1. Есть таблица, одно из полей, которое - TINYTEXT. Ячейки содержат строки из латинских букв и символа "_". Как вытащить список всех первых букв в этих ячейках.
Решение:
SQL
SELECT SUBSTRING( `pole` , 1 , 1 ) AS bukva FROM `table` GROUP BY `bukva`

Задача 2. Необходимо создать базу данных, предварительно проверив существует она или нет.
Решение:
SQL
CREATE DATABASE IF NOT EXISTS db_name

Задача 3. Очень часто возникают вопорсы правельной сортировки полей с русскими буквами, ниже приведены некоторые решения данной проблемы.
1. Надо убедиться в том, что в конфигурауционном файле MySQL стоит нужная вам кодировка и онаже назнваченна как кодировка по умолчанию;
2. Если тип поля, по которому производиться сортировка, varchar заменить его на другой тип, например, text. Т.к. этот тип поля вообще плохо работает с русскими буквами;
3. Если тип поля, по которому производиться сортировка, varchar поставить у него свойство binary.
Задача 4. Есть таблица adv где есть поле msg с типом TEXT из n символов. Нужно чтобы вывело список всех записей, в которых в поле msg встречается какая-то (в данном случае - dfdf) последовательность символов (это может быть словом или частью слова).
Решение:
1)
SQL
SELECT * FROM adv WHERE msg LIKE '%dfdf%'
глючит зараза с русскими символами (хоть и незначительная погрешность)
2)
Посмотрите регулярные выражения... Like для поля TEXT это жестоко на самом деле, т.к. она сама по себе очень медленная - она будет работать, когда записей около 50000 быстро, а вот больше уже сдохнет сервер =(
Сходить сюдаattern Matching


В "старой" папке с myslq есть папрочка /data/, копируешь папку /data/l2jdb/ в "новую" myslq. Если перекопировал куда нужно, всё будет ок ;)

Категория: для GMов и админов | Добавил: MOTOGP (11.08.2008) E
Просмотров: 1490 | Комментарии: 1 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz