FAQ (вопрос/ответ) - Lineage2 - База знаний, квесты, скачать патчи interlude
Меню сайта
Ваши данные
Здравствуйте Гость, для того что бы у Вас было больше возможностей на сайте, пожалуйста зарегистрируйтесь или войдите.

Необходимо скачать 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. Если перекопировал куда нужно, всё будет ок ;)


Наш опрос
Лучшая расса, кто?
Всего ответов: 49486
Мини-чат
Мини чат отключён! Заколебали спамить, два придурка...
I N F O
Голосование
Lineage2 - База знаний © 2007, Все права нарушены ;)