Новые книги

Как придумать удачный дизайн? И как оценить качество дизайна? На эти вопросы отвечает Чип Кидд – знаменитый книжный дизайнер и один из самых остроумных спикеров ТЕД. В отличие от “просто” искусства, дизайн всегда решает какую-то конкретную проблему. Как сделать максимально понятным дорожный знак? Как нарисовать обложку, которая превратит книгу в бестселлер? Как придумать остроумный и подкупающий рекламный слоган? И как не поддаться соблазну циничной манипуляции, инструментом которой подчас становится дизайн (“Разумеется, это полезный продукт! Смотрите – на упаковке нарисована морковка!”)? К счастью, нам не обязательно быть дизайнерами, чтобы оценить, насколько хорошо дизайн решает проблемы. Ведь это наши проблемы.

В формате pdf A4 сохранен издательский дизайн.
Дорогой читатель, перед тобой уникальная книга, в которой нам удалось собрать опыт всех тренингов по продажам, которые проводили бизнес-тренеры Петербургской Школы переговорщиков «ШИП».

Мы разберем техники и основные ошибки, которые совершают люди при проведении продаж, посмотрим, как по-разному подходят к процессу продаж различные компании, увидим, на чем строится работа эффективного продавца.

Для простоты понимания, мы будем использовать в тексте все те схемы, таблицы, которые мы используем на тренингах.

Для кого эта книга?

Для тех, кто только собирается стать миллионером, путем продажи товара или услуги.

Эта книга для тех кто, активно занимается продажами, для кого они источник материального благополучия.

Эта книга для специалистов корпоративных университетов, которые обучают продажам в компании, кому важно в короткие сроки донести ключевую информацию до менеджеров по продажам, продавцов.

Эта книга для руководителей отделов продаж, проектных групп, чьи сотрудники постоянно отстаивают интересы компании в переговорах с покупателями.

Эта книга для hr-специалистов, для тех, кто занимается отбором специалистов в отделы продаж, кому важно быстро принять правильное решение, для чего нужно понять, будет ли из кандидата толк, сможет он приносить прибыль компании или будет ненужным балластом.

Эта книга для бизнес-тренера, которому важно уметь емко и сжато объяснить участникам тренинга по продажам, что же такое «продажи», и научить их зарабатывать деньги для себя и компании.

Книга поможет не только разобраться в принципах эффективных продаж, но и оценить свои способности благодаря уникальным тестам, приведенным в конце книги.

Функции Абстрактного Слоя БД (dbm-стиль)

Учебник РНР
Назад Вперёд

XVII. Функции абстрактного слоя баз данных
(в dbm-стиле)

Введение

Эти функции являются фундаментом для доступа к БД в стиле Berkeley DB.

Имеется общий абстрактный слой для различных БД на основе файлов. Сама по себе функциональность ограничена обычным поднабором возможностей, поддерживаемых современными БД, такими как Sleepycat Software's DB2. (Это не конфликтует с программой DB2 IBM, которая поддерживается с помощью ODBC-функций.)

Требования

Поведение различных аспектов зависит от реализации конкретной БД. Такие функции как dba_optimize() и dba_sync() могут выполнять свои действия с одной БД и не выполнять - с другими. вы должны загрузить и установить поддерживаемые dba-обработчики.

Таблица 1. Список обработчиков DBA
Обработчик Примечания
dbmDbm это самый старый (оригинальный) тип БД в стиле Berkeley DB. Вы должны исключить его использование, если это возможно. Мы не поддерживаем функции совместимости, встроенные в DB2 и gdbm, поскольку они совместимы только на уровне исходного кода, но не могут обрабатывать оригинальный dbm-формат.
ndbmNdbm это тип более новый и гибкий, нежели dbm. Но в нём ещё имеются некоторые ограничения dbm (поэтому он не рекомендуется).
gdbm Gdbm это GNU менеджер БД.
db2DB2 это Sleepycat Software'sDB2. Он описан как "программный набор утилит, предоставляющий встроенную высокопроизводительную поддержку БД для самостоятельных и клиент/серверных приложений".
db3DB3 это Sleepycat Software's DB3.
cdbCdb это "быстрый, надёжный, небольшой пакет для создания и чтения константных БД." Этот - от автора qmail и находится здесь. Поскольку это константа, мы поддерживаем только операции чтения.

При использовании функции dba_open() или dba_popen() имя одного из обработчиков должно быть предоставлено в качестве аргумента. Действующий список обработчиков выводится вызовом функции phpinfo().

Установка

Используя опцию конфигурации --enable-dba=shared, вы можете построить динамически загружаемый модуль, чтобы сделать возможной поддержку в РНР баз данных dbm-стиля. Вы должны также добавить поддержку для как минимум одного из следующих обработчиков, специфицировав переключатель конфигурации --with-XXXX в строке конфигурации вашего PHP.

Таблица 2. Поддерживаемые обработчики DBA
ОбработчикПереключатель конфигурации
dbmдля включения поддержки dbm добавьте --with-dbm[=DIR].
ndbmдля включения поддержки ndbm добавьте --with-ndbm[=DIR].
gdbmдля включения поддержки gdbm добавьте --with-gdbm[=DIR].
db2для включения поддержки db2 добавьте --with-db2[=DIR].
db3для включения поддержки db3 добавьте --with-db3[=DIR].
cdbдля включения поддержки cdb добавьте --with-cdb[=DIR].

Конфигурация

Это расширение не определяет никаких директив конфигурации.

Типы ресурсов

Функции dba_open() и dba_popen() возвращают дескриптор специфицированного файла БД, который используется при вызовах всех других функций dba.

Предопределённые константы

Это расширение не определяет никаких констант.

Примеры

Пример 1. DBA
<?php

$id = dba_open ("/tmp/test.db", "n", "db2");

if (!$id) {
    echo "dba_open failed\n";
    exit;
}

dba_replace ("key", "This is an example!", $id);

if (dba_exists ("key", $id)) {
    echo dba_fetch ("key", $id);
    dba_delete ("key", $id);
}

dba_close ($id);
?>

DBA является binary safe (безопасным в бинарном режиме) и не имеет каких-либо ограничений. Однако он наследует все ограничения, установленные реализацией БД.

БД на основе файлов обязаны предоставлять способ установки режима файла для вновь создаваемой БД, если это вообще возможно. Режим файла/file mode обычно передаётся как четвёртый аргумент в функцию dba_open() или dba_popen().

Вы можете получить доступ ко всем вхождениям БД линеарным способом, используя функции dba_firstkey() и dba_nextkey(). Вы не можете изменять БД, проходя по ней.

Пример 2. Проход по БД
<?php

// ...открыть БД...

$key = dba_firstkey ($id);

while ($key != false) {
    if (...) {          // запомнить key для выполнения в дальнейшем некоторой акции
        $handle_later[] = $key;
    }
    $key = dba_nextkey ($id);
}

for ($i = 0; $i < count($handle_later); $i++)
    dba_delete ($handle_later[$i], $id);

?>
Содержание
dba_close - закрывает БД
dba_delete - удаляет вхождение, специфицированное ключом/key
dba_exists - проверяет существование ключа
dba_fetch - извлекает данные, специфицированные ключом
dba_firstkey - извлекает первый ключ
dba_insert - вставляет вхождение
dba_nextkey - извлекает следующий ключ
dba_open - открывает БД
dba_optimize - оптимизирует БД
dba_popen - открывает БД постоянно
dba_replace - заменяет или вставляет вхождение
dba_sync - синхронизирует БД

Назад Оглавление Вперёд
ctype_xdigitВверх dba_close