SQLite как генератор csv-потоков

Недавно я писал о том, как транслировать размещенную на сервере в формате csv электронную таблицу (по сути обычный текстовый файл) в нарядную html-структуру. Но кому сейчас интересно работать со статическими ресурсами? Оказывается, создавать динамические csv-документы умеет движок SQLite. Причем для того, чтобы этой фичей попользоваться, не нужды сложные сервлеты и PHP-извращения. Достаточно обычного cgi-скрипта менее чем в 10 строк:

#!/bin/bash

echo "Content-Type: text/plain; charset=utf-8" 
echo ""

    # Преобразуем закодированные параметры (часть SQL-запроса формируется на стороне клиента) в обычный текст.

    REQ=`echo $QUERY_STRING | /usr/bin/ascii2uni -a J`

    # Вставляем динамический "кусок" в запрос

    REQ="select code, name, price from prices where $REQ order by name limit 20"

    # Заголовки столбцов

    echo '"Модель", "Наименование", "Цена"'

    # Вытаскиваем данные из sqlite, они прямым ходом почапают в браузер в виде cvs-структуры благодаря соответствующему ключу.
    # На стороне клиента данные можно хорошенько разукрасить. См. ссылку в начале.

    /usr/local/bin/sqlite3 -csv prices.sqlite "$REQ"

База данных с картинками

Понадобилось на скорую руку написать нечто вроде CMS, где главная трудность — заполнение базы данных. Операторам предстоит нудная ручная работа с адресами и телефонами организаций, о которых неизвестно ничего, кроме названия и географических координат. Появилась идея оснастить каждую запись базы данных картинкой, чтобы оператор представлял хотя бы о каком районе идет речь.

В MS-Access вставлять картинки в базу данных можно давно. Оказывается, входящая в состав пакета OpenOffice компонента для ведения баз данных ooBase тоже обладает такой возможностью.



Достаточно в таблице завести поле типа VARBINARY, а в форме сопоставить ему элемент управления «Изображение». Загрузить картинки для каждой записи базы данных можно щелкнув по элементу управления правой кнопкой и выбрав файл. А можно и автоматически, но об этом и других чудесах ooBase чуть позже.

Старый добрый ODBC как прокладка для 1С из-под Wine в Linux

В 90-е, когда IT-специалисты получили возможность легко обмениваться информацией благодаря Интернету, мир пребывал в эйфории. Еще бы, столько полезных концепций ринулись в общий котел, превращаясь на глазах в могущественный сплав, позволявший решить (как тогда казалось) любые проблемы. Вот и реляционные базы данных повыползли из полузакрытых корпоративных лабораторий и превратились в повседневное средство решения программистских проблем. Только вот баз данных много, форматы данных и соединений с ними у всех производителей разные… В воздухе витала идея о том, что хорошо бы сделать нечто, позволяющее абстрагироваться от частностей и обращаться к любым базам данных одинаковым способом. Ведь в конечном итоге все они поддерживают SQL-запросы.

И тут самое время вспомнить цитату из "Компьютерной Библии": «Билл был хитрее всех зверей полевых»…



( Читать дальше )