Наш опрос | |
Статистика |
Онлайн всего: 21 Гостей: 21 Пользователей: 0 |
|
| | |
|
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 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
| |
| | |
|
|