Справочное руководство по MySQL

         

Справочное руководство по MySQL версии 4.0.11-gamma

Это - справочное руководство по MySQL; оно представляет собой документацию по MySQL версии 4.0.11-gamma. Функциональные изменения отмечены номером версии, в которой они произведены, поэтому это руководство будет полезно при освоении также и более старых версий MySQL. Поскольку данный материал носит чисто справочный характер, в нем не содержится основных положений SQL или сведений по реляционным базам данных.


Общая информация
Об этом руководстве
Соглашения, используемые в данном руководстве
О русском переводе руководства
Что представляет собой MySQL?
История MySQL
Основные возможности MySQL
Насколько стабильным является MySQL?
Насколько большими могут быть таблицы в MySQL?
Вопросы, связанные с Проблемой-2000
Что представляет собой компания MySQL AB?
Бизнес-модель и услуги, оказываемые компанией MySQL AB
Поддержка
Обучение и сертификация
Консультации
Коммерческие лицензии
1О нашей программе партнерства
О рекламе


Как с нами связаться
Лицензии и поддержка MySQL
Поддержка, предлагаемая компанией MySQL AB
Авторские права и лицензии на MySQL
Лицензии на ПО MySQL
Использование ПО MySQL под коммерческой лицензией
Бесплатное использование ПО MySQL по лицензии GPL
Логотипы и торговые марки MySQL AB
Оригинальный логотип MySQL
Логотипы MySQL, которые могут использоваться без письменного разрешения
В каком случае для использования логотипов необходимо письменное разрешение?
Партнерские логотипы MySQL AB
Использование слова MySQL в текстовых документах и презентациях
Использование слова MySQL в названиях компаний и продуктов
Кратко о MySQL 4.x
Поэтапный выпуск
Можно использовать уже прямо сейчас
строенный MySQL
Другие функции, доступные в MySQL 4.0
Функции MySQL 4.x, которые будут добавлены в будущем
MySQL 4.1, следующая ветка в разработке

Источники информации по MySQL
Списки рассылки MySQL
Списки рассылки MySQL
Как задавать вопросы и направлять сообщения об ошибках
Как отправлять отчеты об ошибках или проблемах
Рекомендации по ответам на вопросы, направляемые в список рассылки
Пользователи MySQL на IRC
Насколько MySQL соответствует стандартам?
Каким стандартам соответствует MySQL ?
Запуск MySQL в режиме ANSI
Расширения MySQL к ANSI SQL92
Отличия MySQL от ANSI SQL92
Вложенные SELECTы
Оператор SELECT INTO TABLE
Транзакции и атомарные операции
Хранимые процедуры и триггеры
Внешние ключи
Представления
Символы `--' как начало комментария
Известные ошибки и недостатки проектирования в MySQL

1.10 MySQL и будущее (что предстоит сделать)
Что планируется реализовать в версии в 4.0
Things That Should be in 4.1
Что планируется реализовать в версии 5.0
Что должно быть сделано в ближайшем будущем
То, что надо сделать когда-нибудь
То, чего не планируется делать

Сравнение MySQL с другими СУБД
Сравнение MySQL и mSQL
Как конвертировать инструментальные средства mSQL в MySQL
Различия в клиент-серверных коммуникационных протоколах mSQL и MySQL
Различия в синтаксисе SQL между mSQL 2.0 и MySQL
Сравнение MySQL c PostgreSQL
Стратегии развития MySQL и PostgreSQL
Сравнение возможностей MySQL и PostgreSQL
Тестирование скорости работы MySQL и PostgreSQL

Установка MySQL
Быстрая стандартная установка MySQL
Установка MySQL на Linux
Установка MySQL на Windows
Установка бинарного кода
Подготовка конфигурации MySQL для Windows
Первый запуск сервера

Общие вопросы инсталляции
Как получить MySQL
Проверка целостности пакетов с помощью MD5 Checksums или GnuPG
Операционные системы, поддерживаемые MySQL
Какую версию MySQL использовать
Схемы установки
Как и когда выпускаются обновления
Бинарные коды MySQL, скомпилированные в MySQL AB
Установка бинарного дистрибутива MySQL

Установка исходного дистрибутива MySQL
Обзор быстрой установки
Применение патчей
Типичные опции configure
Установка из экспериментального набора исходных кодов
Проблемы с компиляцией?
Замечания по потокам MIT-pthreads
Дистрибутив исходного кода для Windows

Послеустановочные настройка и тестирование
Проблемы при запуске mysql_install_db
Проблемы при запуске сервера MySQL
Автоматический запуск и остановка MySQL

Апгрейд/даунгрейд MySQL
Модернизация с версии 4.0
Модернизация с версии 3.23 до версии 4.0
Модернизация с версии 3.22 до версии 3.23
Модернизация с версии 3.21 до версии 3.22
Модернизация с версии 3.20 до версии 3.21
Модернизация к иной архитектуре

Заметки по операционным системам
Примечания к Linux (Все версии Linux)
Примечания к бинарным дистрибутивам Linux
Заметки по поводу Linux x86
Примечания к Linux SPARC
Примечания к Linux Alpha
Примечания к Linux PowerPC
Примечания к Linux MIPS
Примечания к Linux IA64
Примечания к Windows
Запуск MySQL на Windows 95, 98 или Me
Запуск MySQL на Windows NT, 2000 или XP
Работа MySQL в среде Windows
Соединение с MySQL на удаленной машине под Windows с использованием SSH
Распределение данных в Windows между несколькими различными дисками
Компиляция MySQL-клиентов в среде Windows
Сравнительные характеристики MySQL под Windows и под Unix
Примечания к Solaris
Примечания к Solaris 2.7/2.8
Примечания к Solaris x86
Примечания к BSD
Примечания к FreeBSD
Примечания к NetBSD
Примечания к OpenBSD 2.5
Примечания к OpenBSD 2.8
Примечания к BSD/OS версий 2.x
Примечания к BSD/OS версий 3.x
Примечания к BSD/OS версий 4.x
Примечания к Mac OS X
Общедоступная бета-версия Mac OS X
Сервер Mac OS X
Примечания к другим Unix-системам
Примечания к бинарному дистрибутиву HP-UX
Примечания к HP-UX версии 10.20
Примечания к HP-UX версий 11.x
Примечания к IBM-AIX
Примечания к SunOS 4
Примечания к Alpha-DEC-UNIX (Tru64)
Примечания к Alpha-DEC-OSF/1
Примечания к SGI Irix
Примечания к Caldera (SCO)
Примечания к Caldera (SCO) Unixware Version 7.0
Примечания к OS/2
Примечания к BeOS
Примечания к Novell NetWare
Замечания по установке Perl
Установка Perl на Unix
Установка ActiveState Perl на Windows
Установка дистрибутива Perl для MySQL на Windows
Проблемы использования интерфейса Perl DBI/DBD
Учебное пособие по MySQL
Подсоединение к серверу и отсоединение от него
Ввод запросов
Создание и использование базы данных
Создание и выбор базы данных
Создание таблицы
Загрузка данных в таблицу
Выборка информации из таблицы
Выборка всех данных
Выборка определенных строк
Выборка определенных столбцов
Сортировка строк
Вычисление дат
Работа с значениями NULL
Сравнение по шаблонам
Подсчет строк
Использование нескольких таблиц
Получение информации о базах данных и таблицах
Примеры стандартных запросов
Максимальное значение столбца
Строка, содержащая максимальное значение некоторого столбца
Максимальное значение столбца для группы
Строка, содержащая максимальное значение некоторого столбца
Использование пользовательских переменных
Использование внешних ключей
Поиск по двум ключам
Подсчет посещений за день
Использование атрибута AUTO_INCREMENT
Использование mysql в пакетном режиме
Запросы проекта "Близнецы.html" (Twin Project)
Поиск нераспределенных близнецов
Вывод таблицы состояний пар близнецов
Использование MySQL совместно с Apache
Администрирование баз данных
Конфигурирование MySQL
Параметры командной строки mysqld
Файлы параметров `my.cnf'
Установка нескольких серверов на один компьютер
Запуск нескольких серверов MySQL на одном компьютере
Общие проблемы безопасности и система привилегий доступа MySQL
Общие принципы обеспечения безопасности
Как обезопасить MySQL от хакеров
Опции запуска mysqld, относящиеся к безопасности
Вопросы безопасности, относящиеся к команде LOAD DATA LOCAL
Функции, выполняемые системой привилегий
Как работает система привилегий
Привилегии, предоставляемые MySQL
Соединение с сервером MySQL
Управление доступом, этап 1: верификация подсоединения
Управление доступом, этап 2: верификация запросов
Причины появления ошибок Access denied ("в доступе отказано.html")
Управление учетными записями пользователей MySQL
Синтаксис команд GRANT и REVOKE
Имена пользователей MySQL и пароли
Когда изменения в привилегиях вступают в силу
Задание изначальных привилегий MySQL
Добавление новых пользователей в MySQL
Ограничение ресурсов пользователя
Задание паролей
Обеспечение безопасности своего пароля
Использование безопасных соединений
Основные сведения
Требования
Параметры команды GRANT
Предотвращение катастроф и восстановление
Резервное копирование баз данных
Синтаксис BACKUP TABLE
Синтаксис RESTORE TABLE
Синтаксис CHECK TABLE
Синтаксис REPAIR TABLE
Использование myisamchk для профилактики таблиц и послеаварийного
Синтаксис запуска myisamchk
Общие опции для myisamchk
Проверочные опции для myisamchk
Опции исправления для myisamchk
Другие опции для myisamchk
Использование памяти утилитой myisamchk
Использование myisamchk для послеаварийного восстановления
Как проверять таблицы на ошибки
Как ремонтировать таблицы
Оптимизация таблиц
Настройка режима профилактики таблиц
Получение информации о таблице
Справочник по языку администрирования баз данных
Синтаксис команды OPTIMIZE TABLE
Синтаксис команды ANALYZE TABLE
Синтаксис команды FLUSH
Синтаксис команды RESET
Синтаксис команды KILL
Синтаксис команды SHOW
Получение информации по базам данных, таблицам, столбцам и индексам
SHOW TABLE STATUS
SHOW STATUS
SHOW VARIABLES
SHOW LOGS
SHOW PROCESSLIST
SHOW GRANTS
SHOW CREATE TABLE
Локализация MySQL и использование национальных алфавитов
Набор символов, применяющийся для записи данных и сортировки
Набор символов немецкого алфавита
Сообщения об ошибках на языках, отличных от английского
Добавление набора символов
Массивы определения символов
Поддержка упорядочивания строк
Поддержка многобайтовых символов
Проблемы с наборами символов
Серверные сценарии и утилиты MySQL
Обзор серверных сценариев и утилит
safe_mysqld, оболочка mysqld
Mysqld_multi, программа для управления множеством серверов MySQL
myisampack, MySQL-генератор сжатых таблиц (только для чтения)
mysqld-max, расширенный сервер mysqld
Клиентские сценарии и утилиты MySQL
Обзор клиентских сценариев и утилит
mysql, Утилита командной строки
mysqladmin, Администрирование MySQL-сервера.
Использование mysqlcheck для сопровождения и аварийного восстановления таблиц.
mysqldump, Получение дампов данных и структуры таблицы
mysqlhotcopy, Копирование баз данных и таблиц MySQL
mysqlimport, импорт данных из текстовых файлов
Просмотр баз данных, таблиц и столбцов
perror, разъяснение кодов ошибок
Как запускать SQL-команды из текстового файла
Файлы журналов MySQL
Журнал ошибок
Общий журнал запросов
Журнал обновлений (update)
Бинарный журнал обновлений
Журнал медленных запросов
Обслуживание файлов журналов
Репликация в MySQL
Введение
Как реализована репликация: обзор
Как настроить репликацию
Возможности репликации и известные проблемы
Опции репликации в файле `my.cnf'
SQL-команды, относящиеся к репликации
Часто задаваемые вопросы по репликации
Поиск неисправностей репликации
Оптимизация в MySQL
Oбзор оптимизации
Конструктивные ограничения MySQL/компромиссы
Вопросы переносимости
Для чего мы использовали MySQL?
Набор тестов MySQL (The MySQL Benchmark Suite)
Использование собственных тестов
Оптимизация SELECT и других запросов
Синтаксис оператора EXPLAIN (получение информации о SELECT)
Оценка производительности запроса
Скорость выполнения запросов SELECT
Как MySQL оптимизирует выражения WHERE
Как MySQL оптимизирует DISTINCT
Как MySQL оптимизирует LEFT JOIN и RIGHT JOIN
Как MySQL оптимизирует ORDER BY
Как MySQL оптимизирует LIMIT
Скорость выполнения запросов INSERT
Скорость выполнения запросов UPDATE
Скорость выполнения запросов DELETE
Другие советы по оптимизации
Вопросы блокировок
Как MySQL блокирует таблицы
Вопросы блокирования таблиц
Оптимизация структуры базы данных
Конструктивные особенности MySQL
Сделайте объем данных как можно меньше

Индексы столбцов
Многостолбцовые индексы
Почему так много открытых таблиц?
Открытие и закрытие таблиц в MySQL
Недостатки создания множества таблиц в одной базе данных
Оптимизация сервера MySQL
Настройка параметров системы, компляции и запуска
Настройка параметров сервера
Как компиляция и линкование влияет на скорость MySQL
Как MySQL использует память
Как MySQL использует DNS
Синтаксис команды SET
Вопросы, относящиеся к диску
Использование символических ссылок
Использование символических ссылок для баз данных
Использование символических ссылок для таблиц
Справочник по языку MySQL
Структура языка
Литералы: представление строк и чисел
Cтроки
Числа
Шестнадцатеричные величины
Значения NULL
Имена баз данных, таблиц, столбцов, индексы псевдонимы
Чувствительность имен к регистру
Переменные пользователя
Синтаксис комментариев
`Придирчив'' ли MySQL к зарезервированным словам?
Типы данных столбцов
Числовые типы данных
Типы данных даты и времени
Проблема 2000 года и типы данных
Типы данных DATETIME, DATE и TIMESTAMP
Тип данных TIME
Тип данных YEAR
Символьные типы данных
Типы данных CHAR и VARCHAR
Типы данных BLOB и TEXT
Тип перечисления ENUM
Тип множества SET
Выбор правильного типа данных в столбце
Использование типов столбцов из других баз данных
Требования к памяти для различных типов столбцов
Функции, используемые в операторах SELECT и WHERE
Операторы и функции общего назначения
Круглые скобки
Операторы сравнения
Логические операторы
Функции потока управления программой
Строковые функции
Функции сравнения строк
Чувствительность к регистру
Числовые функции
Арифметические операции
Математические функции
Функции даты и времени
Функции приведения типов
Другие функции
Битовые функции
Разные функции
Функции, используемые в операторах GROUP BY
Обработка данных: SELECT, INSERT, UPDATE, DELETE
Синтаксис оператора SELECT
Синтаксис оператора JOIN
Синтаксис оператора UNION
Синтаксис оператора HANDLER
Синтаксис оператора INSERT
Синтаксис оператора INSERT ... SELECT
Синтаксис оператора INSERT DELAYED
Синтаксис оператора UPDATE
Синтаксис оператора DELETE
Синтаксис оператора TRUNCATE
Синтаксис оператора REPLACE
Синтаксис оператора LOAD DATA INFILE
Синтаксис оператора DO
Определение данных: CREATE, DROP, ALTER
Синтаксис оператора CREATE DATABASE
Синтаксис оператора DROP DATABASE
Синтаксис оператора CREATE TABLE
Молчаливые изменения определений столбцов
Синтаксис оператора ALTER TABLE
Синтаксис оператора RENAME TABLE
Синтаксис оператора DROP TABLE
Синтаксис оператора CREATE INDEX
Синтаксис оператора DROP INDEX
Основные команды пользовательских программ MySQL
Синтаксис команды USE
Синтаксис команды DESCRIBE (Получение информации о столбцах)
Команды управления транзакциями и блокировками в MySQL
Синтаксис команд BEGIN/COMMIT/ROLLBACK
Синтаксис команд LOCK TABLES/UNLOCK TABLES
Синтаксис команды SET TRANSACTION
Полнотекстовый поиск в MySQL
Ограничения для полнотекстового поиска
Тонкая настройка полнотекстового поиска в MySQL
Предстоящие доработки по полнотекстовому поиску
Кэш запросов в MySQL
Как работает кэширование запросов
Конфигурация кэша запросов
Параметры кэша запросов в запросе SELECT
Статус и поддержка кэша запросов
Типы таблиц MySQL
Таблицы MyISAM
Пространство, необходимое для ключей
Форматы таблиц MyISAM
Характеристики статической таблицы (с фиксированной длиной)
Характеристики динамических таблиц
Характеристики сжатых таблиц
Проблемы с таблицами MyISAM.
Повреждения таблиц MyISAM
Clients is using or hasn't closed the table properly
Таблицы MERGE
Проблемы при работе с таблицами MERGE
Таблицы ISAM
Таблицы HEAP
Таблицы InnoDB
Обзор таблиц InnoDB
Параметры запуска InnoDB
Создание табличной области InnoDB
Если во время создания базы данных что-то происходит не так
Создание таблиц InnoDB
Преобразование таблиц MyISAM в формат InnoDB
Ограничения внешнего ключа
Добавление и удаление файлов данных и журналов InnoDB
Создание резервных копий и восстановление баз данных InnoDB
Контрольные точки
Перенесение базы данных InnoDB на другой компьютер
Транзакционная модель InnoDB
Согласованное чтение
Чтение с блокировкой
Блокировка следующего ключа: устранение проблемы с фантомом
Блокировка, осуществляемая различными операторами SQL в InnoDB
Обнаружение и откат взаимоблокировки (deadlock)
Пример работы согласованного чтения в InnoDB
Рекомендации по увеличению производительности
InnoDB Monitor
Реализация многовариантности
Структуры таблиц и индексов
Физическая структура индекса
Буферизация вставок
Адаптивный хешированный индекс
Физическая структура записи
Как работают автоинкрементные столбцы в InnoDB
Управление файловым пространством и дисковый ввод/вывод
Дисковый ввод/вывод
Управление файловым пространством
Дефрагментация таблицы
Обработка ошибок
Ограничения для таблиц InnoDB
Контактная информация для получения данных по InnoDB
Таблицы BDB или Berkeley_DB
Обзор таблиц BDB
Установка BDB
Параметры запуска BDB
Характеристики таблиц BDB
Что нам нужно исправить в BDB в ближайшем будущем:
Операционные системы, поддерживаемые BDB
Ограничения таблиц BDB
Ошибки, которые могут возникнуть при использовании таблиц BDB
Интерфейсы для MySQL
Интерфейс PHP API для MySQL
Общие проблемы MySQL и PHP
Интерфейс Perl API для MySQL
DBI с помощью DBD::mysql
Интерфейс DBI
Больше информации по DBI/DBD
Поддержка ODBC в MySQL
Как установить MyODBC
Как заполнять различные поля в Администраторе ODBC
Параметры подключения для MyODBC
Как сообщать о проблемах с MyODBC
Программы, работающие с MyODBC
Как получить значение столбца AUTO_INCREMENT в ODBC
Составление отчетов о проблемах с MyODBC
Интерфейс C для MySQL
Типы данных C API
Обзор функций интерфейса C
Описание функций интерфейса C
mysql_affected_rows()
mysql_change_user()
mysql_character_set_name()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_debug()
mysql_drop_db()
mysql_dump_debug_info()
mysql_eof()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_field()
mysql_fetch_field_direct()
mysql_fetch_fields()
mysql_fetch_lengths()
mysql_fetch_row()
mysql_field_count()
mysql_field_seek()
mysql_field_tell()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_init()
mysql_insert_id()
mysql_kill()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_options()
mysql_ping()
mysql_query()
mysql_real_connect()
mysql_real_escape_string()
mysql_real_query()
mysql_reload()
mysql_row_seek()
mysql_row_tell()
mysql_select_db()
mysql_shutdown()
mysql_stat()
mysql_store_result()
mysql_thread_id()
mysql_use_result()
Описания функций C, связанных с потоками
my_init()
mysql_thread_init()
mysql_thread_end()
mysql_thread_safe()
Описания функций C, доступных во встраиваемом сервере
mysql_server_init()
mysql_server_end()
Основные вопросы и проблемы в использовании интерфейса C
Почему после успешных возвратов функции mysql_query() функция mysql_store_result() иногда возвращает NULL?
Какие результаты можно получить из запроса?
Как получить уникальный идентификатор для последней внесенной строки?
Проблемы линкования с интерфейсом C
Сборка клиентских программ
Как создать клиентскую программу с потоками
ibmysqld, встраиваемая библиотека сервера MySQL
Обзор библиотеки встраиваемого сервера MySQL
Компиляция программ с libmysqld
Ограничения при использовании встраиваемого сервера MySQL
Использование файлов опций с встраиваемым сервером
Что осталось сделать по встраиваемомуому серверу (TODO)
Пример простого встраиваемого сервера
Лицензирование встраиваемого сервера
Интерфейсы C++
Интерфейс Borland C++
Взаимодействие MySQL и Java (JDBC)
Интерфейсы Python API для MySQL
Интерфейсы Tcl API для MySQL
Оболочка Eiffel для MySQL
Расширение MySQL
Внутреннее устройство MySQL
Потоки MySQL
Пакет тестирования MySQL
Выполнение тестового пакета MySQL
Расширение тестового пакета MySQL
Отчет об ошибках в тестовом пакете MySQL
Добавление новых функций в MySQL
Синтаксис CREATE FUNCTION/DROP FUNCTION
Добавление новой определяемой пользователем функции
Последовательность вызова UDF для простых функций
Последовательность вызова UDF для агрегатных функций
Обработка аргументов
Возвращаемые значения и обработка ошибок
Компиляция и установка определяемых пользователем функций
Добавление новых родных функции
Добавление новой процедуры в MySQL
Процедура Analyse
Написание процедуры
Проблемы и распространенные ошибки
Как определить, чем вызваны проблемы
Распространенные ошибки при использовании MySQL
Ошибка Access denied
Ошибка MySQL server has gone away
Ошибка Can't connect to [local] MySQL server
Ошибка Host '...' is blocked
Ошибка Too many connections
Ошибка Some non-transactional changed tables couldn't be rolled back
Ошибка Out of memory
Ошибка Packet too large
Коммуникационные ошибки / Оборванные соединения
Ошибка The table is full
Ошибка Can't create/write to file
Ошибка в клиенте Commands out of sync
Ошибка Ignoring user
Ошибка Table 'xxx' doesn't exist
Ошибка Can't initialize character set xxx
Не найден файл (File not found)
Вопросы, связанные с инсталляцией
Проблемы при линковании с клиентской библиотекой MySQL
Запуск MySQL от обычного пользователем
Проблемы с правами доступа к файлам
Вопросы, связанные с администрированием
Что делать, если работа MySQL сопровождается постоянными сбоями
Как переустановить забытый пароль пользователя root
Как MySQL реагирует на переполнение диска
Где MySQL хранит временные файлы
Как защитить или изменить сокет-файл MySQL `/tmp/mysql.sock'
Проблемы с часовыми поясами
Проблемы, относящиеся к запросам
Чувствительность к регистру при поиске
Проблемы с использованием столбцов типа DATE
Проблемы со значением NULL
Проблемы с alias
Удаление строк из взаимосвязанных таблиц
Решение проблем с отсутствием строк, удовлетворяющих условиям поиска
Проблемы со сравнением чисел с плавающей точкой
Вопросы, связанные с определением таблиц
Проблемы с ALTER TABLE
Как изменить порядок столбцов в таблице
Проблемы, относящиеся к временным (TEMPORARY) таблицам
Привнесенные программы
Интерфейсы (API)
Клиенты
Веб-инструменты
Средства тестирования производительности
Средства аутентификации
Конверторы
Использование MySQL с другими программными продуктами
Утилиты
RPM общих инструментальных программ (преимущественно для RedHat 6.1)
Полезные функции
Программы для Windows
Не вошедшие в категории
Перенос на другие системы
Отладка сервера MySQL
Компиляция MySQL для отладки
Создание трассировочных файлов
Отладка mysqld при помощи gdb
Использование трассировки стека
Использование журналов для определения причин ошибок в mysqld
Создание контрольного примера при повреждении таблиц
Отладка клиента MySQL
Пакет DBUG
Методы блокировки
Замечания по потокам RTS
Различия между разными потоковыми пакетами
Переменные окружения
Регулярные выражения в MySQL
GNU General Public License
Preamble
Terms and conditions for copying, distribution and modification
How to Apply These Terms to Your New Programs
I GNU Lesser General Public License
Preamble
Terms and conditions for copying, distribution and modification
How to Apply These Terms to Your New Libraries
Команды SQL, функциональное оглавление
Концептуальное оглавление

Советы по Delphi

Сборник коротких, но очень практических советов по работе с Delphi

Очень медленный доступ к таблице
Задание псевдонима программным путем
Создание многомерного массива
Нажатие кнопки
Вызов Delphi DLL из MS Visual C++

Хитрость OnCalcFields
Получение идентификатора диска
Открытие и закрытие привода CD-ROM
Просмотр буфера обмена I
Работа с индексами Clipper'а
Как зарегистрировать OCX?
Программное открытие ComboBox

Директивы компилятора, способные увеличить скорость
Панель Управления
HEX -> Integer
CPU Speed routine
Создание db-файла во время работы приложения
Создание события во время выполнения приложения

Частичный показ DateTime
Таблицы dBASE: Структура .DBF-файла
Различные цвета строк в DBCtrlGrid
Перевод в верхний регистр первого вводимого символа
Использование опции MultiSelect в DBGRID
Проблема хранения TDBImage

Копирование текста DBMemo
Пример KeyDown компонента DBNavigator
Событие OnChange компонента DBRadioGroup
DCOM
Получение данных из Program Manager через DDE

Hard mode без перерыва
Задержка выполнения OnChange (Delphi 2)
Ошибка сохранения текста в Memo
Ошибка в руководстве "Getting Started"
Получение констант с определением ошибки функцией LoadStr
Снимок DESKTOP в form.canvas

Центрирование информационного диалога (MessageDlg)
Drag & Drop c Win95 Explorer I
Пример TDrawGrid Drawcell
Массив Edit-компонентов Procedure
Битное кодирование/декодирование I
Перехват ошибок DBEngine

DLL и ресурсы
Исключения в Delphi
FileListBox с двумя колонками...как
Поиск величины при вводе I
Как мне проверить готовность диска 'a:'? I

Как приложению воспользоваться своими шрифтами?
Заголовок TGA-файла
Серийный номер тома
Процедура форматирования
Header1
Оглавление файлов помощи

Вывод окна CPU (дизассемблер)
Изображение не масштабируется
Автоматический logon к локальной InterBase
Переход с Oracle на Interbase
Контроль джойстика в Delphi
Звуковой сигнал при нажатии <ENTER>

Label1
Изменение шрифта в Listbox
TListView, TTreeView
Перехват клавиши SHIFT во время выбора пункта меню
FFT аглоритм для Delphi
Прокрутка Memo
Общий доступ к памяти, распределенной DLL

Предел сегмента данных в 64K
Сообщения Windows
Перекрытие виртуальных методов
AT-команды модема
Добавление события OnMouseLeave
Excel

MAPI и MS Exchange
Delphi/MS Office 97/OLE/VB для приложений
Получение данных из Delphi-приложения в документе Word
Обзор сети
События OnClick/Onchange компонента Notebook

Создание объектных переменных
Конфигурирование ODBC
OLE тестер
Связь с personal Oracle
Ханойская башня
Извлечение из EXE-файла иконки и рисование ее в TImage
Высокоточный таймер
Сканирование версии структуры базы данных
FTP4W32.DLL и Delphi 2.0

Делегирование события
Сокращенное имя каталога
Каталог вашего приложения
Массив компонентов
Пример использования ActiveControl
Производная TOutline

Перемещение мышью панели на форме во время выполнения программы
Форматированные Memo-поля таблиц Paradox
Пример переменного количества параметров
Как избежать использования неактуальных указателей
Как динамически создавать пункты подменю в PopupMenu
Работа с последовательными портами

Управление монитором
Управляющие коды принтера
ProgressBar в StatusBar
Код определения свойств
Пример защиты типа SHAREWARE

Поиск записи с помощью TQuery
Проблемы со шрифтами у QuickReport
Текущий номер записи
Как удалить файлы в корзину
Регистры - доступ и использование вместо WIN.INI

Передача переменных отчета в ReportSmith
Таблицы строк
Чтение текста RichEdit из базы данных
Создание хранителя экрана
Синхронизация двух компонентов Scrollbox

Как создавать ярлыки
События, происходящие в приложениях Delphi при завершении работы Windows
Низкоуровневые процедуры обработки звука
Конструирование Splitter
Имя SQL-таблицы
Обработчик события OwnerDraw в компоненте StatusBar

Реализация собственного потока
Установка атрибутов
Эквивалент Trim$(),Mid$()
Добавление элементов управления в TTabbedNotebook и TNotebook

Создание компонента TTable без формы
Перемещение на страницу Tabset по имени
Больше цветов
Поиск строки текста в наследниках TCustmoEdit
Информация о TDataLink

Dos Copy через TFileStream
Delphi-приложения без форм
Канва от THandle
Рассуждения о потоках

TMetafile - ошибка при работе с памятью
Недокументированный TParser
Ускорение работы TreeView
Подсказка по работе TRegIniFile
Сохранение и чтение из потока данных объекта
TStringList в TIniFile
Пример TWriter/TReader

Огромные числа
Не работает функция Writeln
Получение переменных окружения DOS
Visual Basic "Beep" в Delphi
Пример DDE & WordPerfect

Самоучитель по Delphi 7 для профессионалов

Несколько лет назад книгу по Delphi 2 или 3 надо было начинать с азов объектно-ориентированного программирования (ООП). Многие только переходили к Delphi из DOS, многие использовали Borland Pascal for Windows и работали с Windows API напрямую. Объекты еще были в диковинку, и полное разъяснение новых принципов было просто обязательно.
Но и сейчас писать об этом вполне актуально. Конечно, выросло поколение программистов, которые "с молоком матери" впитали новые понятия. Но от понимания объектов до их грамотного использования — дистанция огромного размера. Для создания более или менее сложных приложений нужны навыки объектно-ориентированного дизайна, а для приложений в свою очередь — четкое знание возможностей вашей среды программирования. Поэтому в данной главе мы постараемся акцентировать внимание читателя на применение ООП в среде Delphi 7.
По сравнению с традиционными способами программирования ООП обладает рядом преимуществ. Главное из них заключается в том, что эта концепция в наибольшей степени соответствует внутренней логике функционирования операционной системы (ОС) Windows. Программа, состоящая из отдельных объектов, отлично приспособлена к реагированию на события, происходящие в ОС. К другим преимуществам ООП можно отнести большую надежность кода и возможность повторного использования отработанных объектов.

Объектно-ориентированное программирование
Библиотека визуальных компонентов VCL и ее базовые классы
Обработка исключительных ситуаций
Кроссплатформенное программирование для Linux
Элементы управления Win32

Элементы управления Windows XP
Списки и коллекции
Действия (Actions) и связанные с ними компоненты
Файлы и устройства ввода/вывода
Использование графики
Архитектура приложений баз данных

Набор данных
Поля и типы данных
Механизмы управления данными
Компоненты отображения данных
Процессор баз данных Borland Database Engine

Технология dbExpress
Сервер баз данных InterBase и компоненты InterBase Express
Использование ADO средствами Delphi
Технология DataSnap. Механизмы удаленного доступа
Сервер приложения

Клиент многозвенного распределенного приложения
Компоненты Rave Reports и отчеты в приложении Delphi
Визуальная среда создания отчетов
Разработка, просмотр и печать отчетов

Отчеты для приложений баз данных
Стандартные технологии программирования
Динамические библиотеки
Потоки и процессы
Многомерное представление данных
Использование возможностей Shell API

Глубины Indy

Indy отличается от других сокетных компонент, с которыми вы возможно уже знакомы. Если вы никогда не работали с другими сокетными компонентами, возможно, вы найдете, что Indy очень прост, так как Indy работает так как вы ожидали. Если вы уже работали с другими сокетными компонентами, то просто забудьте все, что вы знали. Это будет вам только мешать и вы будете делать ложные предпосылки.
Почти все другие компоненты работают в неблокирующем режиме, асинхронно. Они требуют от вас реагировать на события, создавать машину состояний и часто исполнять циклы ожидания. Например, с другими компонентами, когда вы делаете соединения, то вы должны ожидать событие соединения или крутить цикл ожидания, пока свойство, ухаживающие факт соединение не будет установлено. С Indy, вы просто вызываете метод Connect и просто ждете возврата из него. Если соединение будет успешное, то будет возврат из метода по окончанию соединения. Если же соединение не произойдет, то будет возбуждено исключение.
Работа с Indy аналогична работе с файлами. Indy позволяет поместить весь код в одно место, вместо создания различных разработчиков событий. В дополнение, многие находят Indy более простым в использовании. Indy также разработан на работу с потоками. Если вы имеет проблемы с реализацией чего-либо в Indy, то вернитесь назад и реализуйте это как для файлов.

Методология Indy
Прозрачные прокси
Небезопасный код

Аппаратные интерфейсы ПК

Толковый словарь по вычислительным системам определяет понятие интерфейс (interface) как границу раздела двух систем, устройств или программ; элементы соединения и вспомогательные схемы управления, используемые для соединения устройств. Эта книга посвящена интерфейсам, позволяющим подключать к пер­сональным (и не только) компьютерам разнообразные периферийные устройства (ПУ) и их контроллеры, а также соединять отдельные подсистемы компьютера. Рассмотрим вкратце основные свойства интерфейсов.
По способу передачи информации интерфейсы подразделяются на параллельные и последовательные. В параллельном интерфейсе все биты передаваемого слова (обычно байта) выставляются и передаются по соответствующим параллельно идущим проводам одновременно. В PC традиционно используется параллельный интерфейс Centronics, реализуемый LPT-портами, шины ATA, SCSI и все шины расширения. В последовательном интерфейсе биты передаются друг за другом, обычно по одной (возможно, и двухпроводной) линии. Эта линия может быть как однонаправленной (например, в RS-232C, реализуемой СОМ-портом, шине Fire Wire, SPI, JTAG), так и двунаправленной (USB, 12С).

Традиционный LPT-порт
Подключение устройств к шине
Модули динамической памяти

Последовательный интерфейс Serial АТА

Cамоучитель по устранению сбоев и неполадок домашнего ПК

Наиболее серьезно сегодня стоит та проблема, что пользователь, обращаясь в сервис-центр за помощью, не может достаточно внятно сказать, что же с его компьютером приключилось и что ему не нравится в работе "электронного друга". И ничего тут не поделаешь, в наше время компьютер очень часто приобретают лишь для того, чтобы он стоял на своем месте в углу комнаты (почти как телевизор). Усугубляет эту проблему отношение к персональному компьютеру как к игровой приставке: сунул диск в дисковод и играй. О каком-нибудь уровне подготовки не может идти и речи.
Более или менее точно указать признаки неполадки поможет нижеследующий список "состояний" компьютера при возникновении проблем. Можно выделить следующие категории.

Введение
Что делать, если компьютер плохо работает?
Первое включение

Установка программ и игр
Мультимедийные функции компьютера
Работа в локальной сети

Подключение новых устройств
Преврати свой сайт в портал

Пособие по устранению сбоев и неполадок домашнего ПК

Что делать, если компьютер плохо работает?
Диагностические сообщения BIOS
Диагностические сообщения операционной системы
Диагностические программы

Вы купили компьютер
Питание компьютера и его компонентов
Первое включение
Установка операционной системы
Настройка операционной системы

Установка программ и игр
Настройка программ и игр
Удаление программ и игр
Работа с файлами и каталогами
Работа с офисными программами

Мультимедийные функции компьютера
Работа в сети Интернет
Работа в локальной сети
Компьютерные вирусы
Зависания операционной системы

Подключение новых устройств
Персональный компьютер
Выбор КПК – задача, без сомнения

Комбинации "горячих клавиш" в пакете Archicad

Другое название термина Сочетание клавиш (синонимы: горячая клавиша, шорткат (англ. shortcut), клавиша быстрого доступа, клавиша быстрого вызова, клавиатурный ускоритель) (англ. keyboard shortcut, quick key, access key, hot key) (для программного обеспечения) — разновидность интерфейса взаимодействия с вычислительным устройством (компьютером, калькулятором), представляющая собой нажатие кнопки/клавиши (или сочетания клавиш) на клавиатуре, которому назначено (запрограммировано) некое действие — команды (операции), исполняемые данной системой. Как правило, частично дублирует интерфейс меню или кнопок и служит для значительного ускорения работы, также — увеличения количества возможных действий, выполняемых с помощью клавиатуры.
Использование сочетаний позволяет на одну клавишу назначить несколько значений, что значительно увеличивает количество действий, выполняемых с клавиатуры.
Например, в инженерных калькуляторах есть клавиша «x?», над которой, как правило, написано «x?». При обычном нажатии на эту клавишу введённое число возводится в квадрат. Для выполнения «x?» предварительно нажимается специальная клавиша-модификатор для активации вторичной функции (она может иметь названия, к примеру, «shift», «2ndf», надпись на ней обычно синего цвета, в отличие от прочих, белых), затем нажимается клавиша «x?». При этом выполняется команда, написанная наверху. Таким образом, одной клавише назначено два действия, чем сокращается количество кнопок на калькуляторе. Можно добавить на калькулятор ещё несколько подобных кнопок: «3rdf», «4thf» и т.д. После этого на одну клавишу можно будет назначить три, четыре и более команд.

Выбор элементов
Rubberband line (резиновая линия)
Import
Tolerance
IMPORT
MSPACE
Переключиться с текущего инструмента на указатель
REDEFINE
Скатные крыши
TREESTAT

Самоучитель по ArchiCAD 8

Книга «ArchiCAD 8. Справочник с примерами» является справочным пособием, описывающим основные принципы и методы работы с программой ArchiCAD. Она адресована как начинающим пользователям ArchiCAD, только приступающим к изучению этой программы, так и тем, кто уже работал с предыдущими версиями ArchiCAD и хочет освоить новые возможности ArchiCAD 8. Для удобства тех читателей, кто хотел бы сразу перейти к изучению новшеств ArchiCAD 8, в приложении А этой книги приводится их перечень с указанием разделов, в которых они описываются.
Второе издание книги дополнено описанием новшеств, появившихся в последней на этот момент версии ArchiCAD - ArchiCAD 8.1, а также информацией об особенностях локализованной для России версии пакета. Кроме того, исправлены обнаруженные ошибки и неточности первого издания.

Параметрические конструкции
Рабочее место ArchiCAD
Рабочая среда и настройки проекта
Способы построения и редактирования элементов проекта
Создание конструктивных элементов
Размещение библиотечных элементов
2D-черчение и образмеривание
Извлечение информации о проекте
Визуализация проектов в ArchiCAD
Вывод чертежей на печать
Специальные возможности ArchiCAD
Библиотеки ArchiCAD
Расширения ArchiCAD и дополнительные программы
Взаимодействие ArchiCAD с другими программами
Способы взаимодействия участников проекта
Новые возможности ArchiCAD 8.1
Новые возможности PlotMaker3.1
Новые возможности ArchiCAD 8
MacOS

Справочник по ArchiCAD 8

Справочник с примерами» является справочным пособием, описывающим основные принципы и методы работы с программой ArchiCAD. Он адресована как начинающим пользователям ArchiCAD, только приступающим к изучению этой программы, так и тем, кто уже работал с предыдущими версиями ArchiCAD и хочет освоить новые возможности ArchiCAD 8. Для удобства тех читателей, кто хотел бы сразу перейти к изучению новшеств ArchiCAD 8, в приложении А этой приводится их перечень с указанием разделов, в которых они описываются.

Введение в ArchiCAD
Рабочее место ArchiCAD
Рабочая среда и настройки проекта
Способы построения и редактирования элементов проекта
Создание конструктивных элементов
Размещение библиотечных элементов
2D-черчение и образмеривание
Извлечение информации о проекте
Визуализация проектов в ArchiCAD
Вывод чертежей на печать
Специальные возможности ArchiCAD
Библиотеки ArchiCAD
Расширения ArchiCAD и доп. программы
Взаимодействие ArchiCAD с другими программами
Способы взаимодействия участников проекта
Новые возможности ArchiCAD 8.1
Новые возможности PlotMaker3.1

Простая программа проектирования ArchiCAD

Planix Home 3D Architect — это простая программа для строительного, интерьерного и ландшафтного проектирования. С помощью этой программы вы можете быстро создать точный проект вашего дома или сада, присвоить цифры или символы объектам на чертеже и наконец создать множество отчетов, основанных на этих данных.
Вы можете объемно увидеть ваш дом изнутри либо сверху, либо с определенной точки изнутри и добиться высококачественного трехмерного изображения, используя текстуры и цвет.
И наконец, вы можете создать трехмерную презентацию вашего чертежа. Видеофайл покажет то, что вы увидели бы, если бы прошли по дому.
Вы. можете направлять движение по плану самостоятельно. Planix Home 3D Architect позволяет:
Проектирование строительства, перепланировки и расширения дома.
Создание схем этажей.
Проектирование внутренних помещений.
Ландшафтное проектирование.
CATV, аудио/видео, компьютерные диаграммы и проекты электрических коммуникаций.
Создание описи всего имущества и ценностей, хранящихся в вашем доме.
Преимущества Planix Home 3D Architect — это скорость, много возможностей и простота работы с программой. Они проявляют себя в нуж-ный момент и не мешают, когда вы в них не нуждаетесь. Если вы знакомы с Windows, то увидите знакомый интерфейс, систему меню и т.д. Если нет, вам будет легко научиться работать с программой. А обмен информацией с электронными таблицами, текстовым редактором, базой данных или настольной издательской программой — это очень удобно, потому что вы можете работать сразу с несколькими приложениями одновременно.

Строительное, интерьерное и ландшафтное проектирование
Область печати
Панель инструментов

Шаг за шагом в ArchiCad 7.0

Новшество ArchiCAD, определение параметрических объектов позволяет еденично сохраненные объекты ( такие как окна, двери, светильники или ступеньки) использовать для представления подобных им объектов простым изменением их высоты, толщины, материала или других настраиваемых параметров. Каждый объект также можно пересохранить под другим именем позволит вам быстро построить свою собственную специфическую библиотеку.

Введение в Archicad
Кликните на кнопке Target Lock
Кликнем на переключателе Sensitive
Независимые метки
Быстрые виды и Избранное
Двери и окна
Установим размер балки
Кликнем на каждом завершающем узле
Процесс черчения сплайна Безье
Display Options - изменение отображения хода двери
Создание 3D-вида
Виртуальная реальность
Изменение цвета и размера
Реестр дверей и окон
Обновление шаблонов, вывод на принтер и плоттер
Обзор проекта
Отсоединение от проекта, выбор команды
Зоны и сечения / проекций

Обзор Outlook 2003

Outlook содержит клиентское программное обеспечение электронной почты. Он помогает читать, сортировать, отслеживать и находить сообщения электронной почты, позволяет создать базу данных адресов и контактов. Для обеспечения безопасности данных сообщения электронной почты можно подписывать цифровой подписью и шифровать.
Outlook выполняет функции настольного органайзера или менеджера персональной информации (Personal Information Manager, PIM) и призван облегчить пользователю планирование его личного и рабочего времени: составление графика встреч, собраний, выполнения определенных заданий. Он облегчает сотрудничество групп, облегчает выбор времени для собраний и встреч, упрощает обмен информацией в коллективах и контроль за выполнением задач. В Outlook данные хранятся в папках.
По сравнению с предыдущей версией Outlook 2003 претерпел существенные конструктивные изменения, нацеленные на повышение возможностей и увеличение гибкости управления электронным почтовым ящиком. Напомним, что в Windows для работы с электронной почтой используется Outlook Express, который является менее мощной программой, чем Outlook.

Знакомимся с Outlook 2003

Офисные задачи в Outlook 2002

Новые возможности, открывшиеся в наш век электронных коммуникаций, локальных и глобальных электронных сетей, позволяют людям отказаться от привычной формы переписки, прибегая к стандартным письмам и услугам почтовых служб. Электронная почта дает вам возможность вести интенсивную переписку с абонентом, находящимся в любой точке планеты, в режиме почти реального времени. Конечно, для ведения электронной переписки необходимо соответствующее программное обеспечение, именно таким и является Microsoft Outlook 2002. Он способен вести полноценную переписку с абонентом: принимать, отправлять и пересылать почтовые сообщения, вести адресную книгу абонентов, сортировать полученную информацию, работать с факсимильными сообщениями. И это далеко не полный список возможностей Outlook 2002 только как почтового приложения. Если рассматривать человеческую деятельность с общих позиций, то это постоянное решение разного рода задач. Решение относительно сложных задач требует тщательного планирования, ведения учета проделанной работы и т. д. Более того, зачастую для решения задачи необходимо подключение группы лиц, которая, в свою очередь, должна проделать аналогичные вышеуказанным процедуры. Как автоматизировать и сделать универсальными процедуры планирования и контроля над проделанной работой? Возможно, вы догадались, что Outlook 2002 — это готовое решение вышеозначенной проблемы.

Введение
Основы Outlook
Диалоговое окно Обработка адреса
Outlook и Интернет
MSN Messenger
Дополнительные возможности Outlook
Диалоговое окно Способы заливки
Программирование в Outlook
Свойства элементов управления

Самоучитель по Outlook2003

Microsoft Outlook 2003 является коммуникационным приложением, помогающим более эффективно распоряжаться своим временем и информацией, а также предоставляющим возможность быстро публиковать данные и работать совместно с коллегами.
Электронная почта, или e-mail, является в сегодняшнем деловом мире незаменимым средством связи. Outlook предоставляет все средства, нужные для эффективной работы с электронной почтой и управления электронными сообщениями.

Работа с сообщениями электронной почты
Работа с календарем
Удаленная работа

Офисные задачи в Outlook 2003

Outlook 2003 поддерживает учетные записи электронной почты, работающие с компьютером, на котором установлен Microsoft Exchange Server, или с компьютером, являющимся почтовым сервером в интернете. В этом разделе рассказывается об этих двух типах учетных записей электронной почты и о том, что отобразится на экране при первом запуске программы Outlook. Если вы присоединены к локальной сети (LAN), которая содержит компьютер с установленным на нем Microsoft Exchange Server, вы отсылаете и получаете электронную почту как внутри сети, так и извне (из интернета) с использованием этого сервера. Сетевой или системный администратор предоставит информацию, необходимую для установки и настройки учетной записи электронной почты Exchange. С помощью Outlook 2003 можно подключаться к серверу Exchange из любого места, в котором есть доступ в интернет.

Pабота с Outlook
Работа с сообщениями электронной почты
Поиск и организация сообщений электронной почты
Работа с календарем
Назначение и управление собраниями
Создание и организация списка контактов
Отслеживание информации
Удаленная работа

Офисные задачи в Outlook 2002

Новые возможности, открывшиеся в наш век электронных коммуникаций, локальных и глобальных электронных сетей, позволяют людям отказаться от привычной формы переписки, прибегая к стандартным письмам и услугам почтовых служб. Электронная почта дает вам возможность вести интенсивную переписку с абонентом, находящимся в любой точке планеты, в режиме почти реального времени. Конечно, для ведения электронной переписки необходимо соответствующее программное обеспечение, именно таким и является Microsoft Outlook 2002. Он способен вести полноценную переписку с абонентом: принимать, отправлять и пересылать почтовые сообщения, вести адресную книгу абонентов, сортировать полученную информацию, работать с факсимильными сообщениями. И это далеко не полный список возможностей Outlook 2002 только как почтового приложения. Если рассматривать человеческую деятельность с общих позиций, то это постоянное решение разного рода задач. Решение относительно сложных задач требует тщательного планирования, ведения учета проделанной работы и т. д. Более того, зачастую для решения задачи необходимо подключение группы лиц, которая, в свою очередь, должна проделать аналогичные вышеуказанным процедуры. Как автоматизировать и сделать универсальными процедуры планирования и контроля над проделанной работой? Возможно, вы догадались, что Outlook 2002 — это готовое решение вышеозначенной проблемы.

Основы Outlook
Outlook и Интернет
Дополнительные возможности Outlook
Программирование в Outlook

Самоучитель по Outlook2002

Новые возможности, открывшиеся в наш век электронных коммуникаций, локальных и глобальных электронных сетей, позволяют людям отказаться от привычной формы переписки, прибегая к стандартным письмам и услугам почтовых служб. Электронная почта дает вам возможность вести интенсивную переписку с абонентом, находящимся в любой точке планеты, в режиме почти реального времени. Конечно, для ведения электронной переписки необходимо соответствующее программное обеспечение, именно таким и является Microsoft Outlook 2002. Он способен вести полноценную переписку с абонентом: принимать, отправлять и пересылать почтовые сообщения, вести адресную книгу абонентов, сортировать полученную информацию, работать с факсимильными сообщениями. И это далеко не полный список возможностей Outlook 2002 только как почтового приложения. Если рассматривать человеческую деятельность с общих позиций, то это постоянное решение разного рода задач. Решение относительно сложных задач требует тщательного планирования, ведения учета проделанной работы и т. д. Более того, зачастую для решения задачи необходимо подключение группы лиц, которая, в свою очередь, должна проделать аналогичные вышеуказанным процедуры. Как автоматизировать и сделать универсальными процедуры планирования и контроля над проделанной работой? Возможно, вы догадались, что Outlook 2002 — это готовое решение вышеозначенной проблемы.

Основы Outlook
Outlook и Интернет
Просмотр новостей
Программирование в Outlook

Работа в Microsoft Outlook XP

Если вы присоединены к локальной сети (LAN), которая содержит компьютер с установленным на нем Microsoft Exchange Server, вы отсылаете и получаете электронную почту как внутри сети, так и извне (из Internet) с использованием этого сервера. Ваш сетевой или системный администратор предоставит вам информацию, необходимую для установки и настройки учетной записи электронной почты Exchange.
Если вы работаете на отдельном компьютере или в сети, которая не содержит свой собственный почтовый сервер, для пользования электронной почтой необходимо иметь учетную запись, предоставленную провайдером Интернет-услуг (Internet Service Provider (ISP)). Вы можете соединяться с провайдером с помощью модема по телефонной линии, через DSL-канал, кабель или через локальную сеть.

Работа с электронной почтой

Компьютерная математика Maple

Вряд ли эта мощная математическая система, разделяющая претензии на мировое лидерство с системами Mathematica фирмы Wolfram Research Inc., нужна секретарше или даже директору небольшой коммерческой фирмы. Но, несомненно, любая серьезная научная лаборатория или кафедра вуза должны располагать подобной системой, если они всерьез заинтересованы в автоматизации выполнения математических расчетов любой степени сложности. Несмотря на свою направленность на серьезные математические вычисления, системы класса Maple необходимы довольно широкой категории пользователей: студентам и преподавателям вузов, инженерам, аспирантам, научным работникам и даже учащимся математических классов общеобразовательных и специальных школ. Все они найдут в Maple многочисленные достойные возможности для применения.
По мнению автора, сравнение системы Maple 7 с лидером среди систем компьютерной математики — системой Mathematica 4.1 — непродуктивно. У каждой программы есть свои достоинства и недостатки. А главное — у них есть свои приверженцы, которых бесполезно убеждать, что иная система в чем-то лучше. Это все равно, что сравнивать великих исполнителей джазовой и рок-музыки Луи Амстронга и Би Би Кинга. Все, кто всерьез применяют системы компьютерной математики, должны работать с несколькими системами, ибо только это гарантирует высокий уровень надежности сложных вычислений.
И все же надо отметить, что интерфейс Maple 7 более интуитивно понятен, чем у строгой Mathematica 4.1. Maple 7 на первый взгляд имеет несколько менее мощную графику, но простота управления параметрами и легкость подготовки графических процедур часто позволяет визуализировать решения математических задач с меньшими усилиями, чем при использовании системы Mathematica 4.1. Обе системы в последних реализациях сделали качественный скачок в направлении эффективности решения задач в численном виде, в частности за счет повышения скорости выполнения матричных операций.
Особенно эффективно использование Maple при обучении математике. Высочайший «интеллект» этой системы символьной математики объединяется в ней с прекрасными средствами математического численного моделирования и просто потрясающими возможностями графической визуализации решений. Применение таких систем, как Maple, возможно при преподавании и самообразовании от самых основ до вершин математики.

Первое знакомство с системой Maple
Информационная поддержка Maple
Работа с файлами и документами
Управление интерфейсом пользователя

Типы данных системы Maple
Встроенные операторы и функции
Типовые средства программирования
Математический анализ
Анализ функций и полиномов

Символьные (аналитические) операции
Типовые средства построения графиков
Расширенные средства графики
Решение дифференциальных уравнений
Математические пакеты

Пакеты линейной алгебры и функциональных систем
Обзор пакетов специального назначения
Примеры решения научно-технических задач

Компьютерная математика и пакет Maple

Программа Maple корпорации Waterloo Maple Inc. — патриарх в мире систем компьютерной математики. Эта система, снискавшая себе мировую известность и огромную популярность, является одной из лучших среди систем символьной математики, позволяющих решать математические задачи в аналитическом виде. Эта книга познакомила читателей с новейшей версией Maple — Maple 7. Она вобрала в себя не только обширные и мощные возможности- предшествующих реализаций системы, но и предоставила в распоряжение пользователя ряд новых возможностей. Прежде всего это целый букет пакетов: CurveFitting, PolynomialTools, OrthogonalSeries и др.
Maple как система компьютерной математики развивается по ряду характерных направлений. Одно из них — повышение мощности и достоверности аналитических (символьных) вычислений. Это направление представлено в Maple наиболее сильно. Maple 7 уже сегодня способна выполнять сложнейшие аналитические вычисления, которые нередко не под силу даже опытным математикам. Конечно, Maple не способна на «гениальные догадки», но зато рутинные и массовые расчеты система выполняет с блеском. В новой версии ее возможности существенно расширены, особенно в области решений дифференциальных уравнений. : Другое важное направление — повышение эффективности численных расчетов. И тут успехи налицо — начиная с версии Maple 6 в систему включены эффективные алгоритмы группы NAG, лидирующей в области численных расчетов. Повышена эффективность и алгоритмов самой системы Maple 7. В результате этого заметно возросла перспектива использования Maple в численном моделировании и выполнении сложных численных расчетов — в том числе с произвольной точностью.
Интеграция Maple с другими программными средствами — еще одно важное направление развития этой системы. Ядро символьных вычислений Maple уже включено в состав целого ряда систем компьютерной математики — от систем «для всех» класса Mathcad до одной из лучших систем для численных расчетов и моделирования — MATLAB. Имеется целый ряд автоматизированных рабочих мест для математиков на основе ядра системы Maple: Math Office, Scientific Word, Scientific Workplace и др.

Краткая характеристика систем класса Maple
Работа со справочной системой
Операции с файлами
Управление видом интерфейса и документа

Maple язык и его синтаксис
Операторы и операнды
Функции пользователя
Приложение

Научно-технические задачи в Maple

Как нетрудно заметить, данный пакет дает доступ всего к 18 функциям системы MATLAB (из многих сотен, имеющихся только в ядре последней системы). Таким образом, есть все основания полагать, что возможности MATLAB в интеграции с системой Maple 7 используются пока очень слабо и носят рудиментарный характер. Стоит ли ради этих функций иметь на компьютере огромную систему MATLAB, пользователи должны решать сами. Если ответ положительный, то, скорее всего, пользователь решает тот класс задач, для которых лучше подходит MATLAB, и надо задуматься уже над тем, нужен ли в этом случае Maple.

Основные определения линейной алгебры
Пакет решения задач линейной оптимизации simplex
Движение частицы в магнитном поле

Математический анализ в Maple

Важным разделом математики является исследование аналитических функций. Оно обычно заключается в определении координат особых точек функции и ее значений в этих точках, а также в выяснении особенностей функции, таких как наличие точек разрыва, асимптот, точек перегибов, разрывов и т. д. К сожалению, пока нет средств, сразу выявляющих все особенности функций, поскольку даже средства, решающие частные задачи анализа функций, довольно сложны и специфичны. Достаточно отметить проблему поиска экстремумов функций (особенно функций нескольких переменных). Поэтому функции приходится анализировать индивидуально.
С помощью функции fsolve легко находятся значения независимой переменной х функций вида f(x), при которых f(x)=0 (корни этого уравнения). При этом данная функция позволяет (в отличие от функции solve) изолировать корни функции f(x) указанием примерного интервала их существования. Ряд функций служит для вычисления экстремумов, максимумов и минимумов функций, а также для определения их непрерывности. Одна из таких функций, extrema, позволяет найти экстремумы выражения ехрr (как максимумы, так и минимумы) при ограничениях constcs и переменных vans, по которым ищется экстремум: extrema(expr. constrs) extrema(expr, constrs, vars) extrematexpr, constrs, vans, V)
Ограничения contrs и переменные vars могут задаваться одиночными объектами или списками ряда ограничений и переменных. Найденные координаты точки экстремума присваиваются переменной 's'. При отсутствии ограничений в виде равенств или неравенств вместо них записывается пустой список {}. Эта функция в предшествующих версиях Maple находилась в стандартной библиотеке и вызывалась командой readlib(extrema). Но в Maple 7 ее можно использовать без предварительного объявления.

Вычисление сумм последовательностей
Анализ функций и полиномов
Основные операции с выражениями
Типовые средства построения графиков
Общая характеристика пакета plots
Основные средства решения дифференциальных уравнений

Самоучитель по Maple

Автор данной книги, как и многие почитатели компьютерных вычислений, прошел долгий путь их реализации: от программируемых микрокалькуляторов до работы на малых и персональных ЭВМ, использующих универсальные языки программирования высокого уровня. Это нашло отражение в его ранних книгах [1-3]. Совсем недавно пользователь ЭВМ, решая даже простые численные задачи, был вынужден осваивать основы программирования и готовить кустарные программы, вряд ли нужные кому-либо еще, кроме их создателя. Между тем возможности компьютеров постоянно росли. Сейчас персональный компьютер (ПК) с микропроцессором класса Pentium II, III или 4 намного превосходит по своим возможностям первые ЭВМ, занимавшие целые комнаты и залы. А скорость вычислений нынешних ПК в сотни раз превосходит скорость вычислений легендарных IBM PC XT и AT (первых ПК) и вплотную приближается к скорости вычислений суперЭВМ недавнего прошлого.

Назначение и место систем Maple
Операции с файлами
Меню View

Виды операторов
Упрощенные функции пользователя
Основные формулы для вычисления сумм последовательностей

Работа с частями выражений
Контурные трехмерные графики
Назначение пакетов расширения и обращение к ним

Обзор средств пакета

Математический анализ в Maple 9

Основной структурной единицей в Maple является рабочий лист, а само окно программы внешне напоминает окна приложений Microsoft Windows: такая же панель меню со стандартным набором команд (часть из них специфична для Maple, но многие, особенно те, которые касаются редактирования документов, вполне знакомы пользователю системы Windows вообще и редактора Word в частности), панель инструментов с кнопками, дублирующими команды панели меню, контекстная панель, рабочая область, строка состояния.
Работа осуществляется в интерактивном режиме: пользователь вводит команду, нажимает <Enter>, после чего в том же рабочем листе под введенной командой отображается результат выполнения операции вычислительным ядром Maple. Сам рабочий лист разбивается на группы. В пределах одной группы выполняются сразу все команды — в порядке их следования в группе. Поэтому формально в Maple выполняется не команда, а группа команд (другое дело, что группа может состоять из одной команды). Что касается самих групп, то их выполнять можно в произвольном порядке, На первый взгляд может показаться, что такой подход создает искусственные трудности в работе. Однако это далеко не так. Грамотно составленный рабочий лист Maple напоминает музыкальный инструмент, в котором роль клавиш играют группы — "сыграть" на нем можно практически любую "мелодию". Это яркое проявление абсолютно новой философии, реализованной командой разработчиков университета Waterloo.
Maple — "аналитик" до мозга костей. Даже в тех случаях, когда вычисления носят численный характер, расчетные алгоритмы очень часто реализуются так, чтобы получить сначала аналитический результат (хотя данный режим может быть отключен — с этой целью предусмотрены специальные опции). Кстати, численные значения могут быть получены с практически любой нужной степенью точности, причем достаточно быстро.
В Maple на сегодня в общей сложности используется более трех тысяч команд, однако некоторые из них (наиболее важные) применяются достаточно часто и составляют костяк базового языка. Они, в основном, имеют отношение к проблемам интегрирования и дифференцирования функций, решения уравнений и т.п. Некоторые команды доступны только при подключении специальных пакетов.

Вступление
Графический интерфейс пользователя
Вычисление производных

Числовые и функциональные ряды
Интегрирование
Дифференциальные уравнения
Задачи физики
Численные методы

Приложение А
Приложение Б

Графический интерфейс пользователя
Вычисление производных
Числовые и функциональные ряды

Интегрирование
Дифференциальные уравнения
Задачи физики
Численные методы

КВ приемник мирового уровня – это очень просто

Радиолюбитель. Недавно вернулся из армии. Сейчас ему 21 год. Некоторое время работал монтажником радиоаппаратуры на заводе. Подрабатывает починкой телевизоров (естественно, отечественных), магнитофонов (обычных) и всякого рода электробытовых приборов. Мечтает в будущем открыть свое “дело”. Но чтобы оно, так или иначе, было связано с электроникой. Часами сидит над схемами. Вдумчив, достаточно серьезен, хотя, безусловно, человек с юмором. Порой саркастичен. В компаниях общителен, любит каламбуры. Второе хобби — история. Поэтому, если он прибегает иногда к историческим аналогиям — не удивляйтесь!

MATLAB для DSP. Моделирование приемника DTMF. Часть 1
MATLAB для DSP. Моделирование приемника DTMF. Часть 2

Матричная лаборатория MatLab

Система MATLAB предлагается разработчиками (фирма Math Works, Inc.) как лидирующий на рынке, в первую очередь в системе военно-промышленного комплекса, в аэрокосмической отрасли и автомобилестроении, язык программирования высокого уровня для технических вычислений с большим числом стандартных пакетов.прикладных программ. Система MATLAB вобрала в себя не только передовой опыт развития и компьютерной реализации численных методов, накопленный за последние три десятилетия, но и весь опыт становления математики за всю историю человечества. Около миллиона легально зарегистрированных пользователей уже применяют эту систему. Ее охотно используют в своих научных проектах ведущие университеты и научные центры мира. Популярности системы способствует ее мощное расширение Simulink, предоставляющее удобные и простые средства, в том числе визуальное объектно-ориентированное программирование, для моделирования линейных и нелинейных динамических систем, а также множество других пакетов расширения системы.
К сожалению, в России неоправданно мало публикаций по системе MATLAB. Помимо обзоров и первой книги по этой системе, в течение ряда лет серьезных изданий, посвященных MATLAB, практически не было. Наконец, в 1997-1999 гг. появились книги, содержащие перевод части фирменных справочников по системе MATLAB 4.0/5.2. При этом книга описывает лишь отдельные средства упрощенной студенческой версии системы MATLAB 5.0. Стали появляться и книги по пакетам расширения этой системы, и учебные курсы по системе MATLAB. Между тем за рубежом системе MATLAB посвящены сотни книг (их список можно найти на Web-узле фирмы Math Works, Inc., разработавшей эту систему), и еще сотни книг посвящены системе Maple V Release 5, ядро которой входит в состав пакетов расширения MATLAB 6.
Таким образом, интерес к системе MATLAB остается у нас неудовлетворенным. Особенно это относится к учебной литературе по новейшим реализациям системы MATLAB, в первую очередь MATLAB 6. Система MATLAB 6.0 появилась в конце 2000 г., а система MATLAB 6.1 (в которой весьма существенно переработаны пакеты расширения, но в ядро системы добавлены лишь две команды для работы со звуком и команда strfind, дополняющая возможности подробно описанной в книге функции findstr) — в июле 2001 г. MATLAB 6 является последней (на момент подготовки рукописи этой книги) реализацией системы MATLAB. В новой реализации системы не только расширены ее возможности, но и радикально переработан и улучшен интерфейс пользователя, существенно обновился состав пакетов расширений.

Введение
Знакомство с матричной лабораторией MATLAB
Установка системы и первые навыки работы

Основы графической визуализации вычислений
Работа со справкой и примерами
Пользовательский интерфейс MATLAB
Обычная графика MATLAB
Специальная графика

Операторы и функции
Специальные математические функции
Операции с векторами и матрицами
Матричные операции линейной алгебры
Функции разреженных матриц

Многомерные массивы
Массивы структур
Массивы ячеек
Численные методы

Обработка данных
Работа с символьными данными
Работа с файлами
Основы программирования

Отладка программ
Поддержка звуковой системы
Знакомство с пакетами расширения MATLAB

Самоучитель по Matlab

В наши дни компьютерная математика получила должную известность и интенсивно развивается как передовое научное направление на стыке математики и информатики. Это нашло отражение в крупной монографии и в целом ряде книг и обзоров автора данной книги, начавшего осваивать это направление еще в начале 80-х гг. прошлого века.
Программируемые микрокалькуляторы и персональные компьютеры уже давно применяются для математических расчетов. Для подготовки программ использовались различные универсальные языки программирования. В начале 90-х гг. на смену им пришли специализированные системы компьютерной математики (СКМ).
Среди них наибольшую известность получили системы Eureka, Mercury, Mathcad, Derive, Mathematica 2/3/4, Maple V R3/R4/R5 и Maple 6 и др. Каждая из этих систем имеет свои достоинства и недостатки и заслуживает отдельного рассмотрения. Повышенный интерес наших пользователей к подобным системам подтверждают результаты выпуска в последние годы целого ряда книг на русском языке, посвященных указанной теме. В списке литературы данной книги даны лишь основные из этих публикаций. За рубежом по каждой серьезной СКМ на web-сайтах их разработчиков можно найти перечни, включающие сотни наименований книг.
В данной книге рассматривается система MATLAB®, прошедшая многолетний путь развития от узко специализированного матричного программного модуля, используемого только на больших ЭВМ, до универсальной интегрированной СКМ, ориентированной на массовые персональные компьютеры класса IBM PC и Macintosh и рабочие станции UNIX и имеющей мощные средства диалога, графики и комплексной визуализации

Визуализация и графические средства
Действительные и комплексные числа
Основы форматирования двумерных графиков
Анимация в пространстве — аттрактор Лоренца

Вызов справки MATLAB
Графики в полярной системе координат
Пример применения объекта дескрипторной графики
Элементарные функции
Функции Эйри

Перестановки элементов матриц
Обращение матриц — функции inv, pinv
И сингулярных чисел разреженных матриц
Вычисление размера размерности массива
Применение массивов структур

Вложенные массивы ячеек
Метод минимизации обобщенной невязки
Вычисление площади полигона
Основные функции символьных данных
Открытие и закрытие файлов

Структура М-файла-функции
Построение диаграмм Парето
Средства работы со звуком
NAG Foundation Toolbox
Идентификация линейных систем