[room] [JT] бывают же уродцы

Денис Смирнов =?iso-8859-1?q?mithraen_=CE=C1_altlinux=2Eru?=
Пт Авг 26 18:28:58 MSD 2005


On Fri, Aug 26, 2005 at 05:27:09PM +0400, Alexey Morsov wrote:
AM> Это позволяет например вызвать из БД имя клиента по его номеру 
AM> строкой вида
AM> select part_name into name from db.part where db.part.part_id=xxx

set name [db onecolumn "SELECT part_name FROM part WHERE
part.part_id=$xxx"]

Сильно сложнее?

AM> В том же питоне мне прийдется как минимум (даже опустим создание 
AM> курсора) делать сначала execute, потом fetch а потмо полученое 
AM> раскидывать по переменным.

Ужасы какие-то. Значит не надо пользоваться python.

Только думается дело в другом. В перле, например, можно ещё использовать
компилированые запросы, которые уже потом вызывать как:

$sth->execute( $xxx );

Что делает код гораздо более прозрачным, и для баз которые это
поддерживают (как например последний постгрес) ещё и _очень_ быстрым.

AM> 2. объекты DataStore (не визуальный) и DataWindow (визуальный), 
AM> которые сами по себе умеют доставать данные по запросу (лбой 
AM> сложности и даже несколько запросов сразу), хранить их и (для 
AM> DataWindow) отображать их (как - настраивается программистом - 
AM> хоть плюшками в рюшках). Grid по сравнению сэтой фичей просто dbf 
AM> по сравнению с sql.

А это таки да, чуть сложнее. В tcl есть для этого чудесный widget, там это
будет тоже просто замечательно работать. Только кода уже на реализацию
такого виджета как вам нужно может уже пару-тройку сотен строк быть. 1-2
дня работы целых.

AM> Тригера, хранимые процедуры, вызов внешних функций (dll). Ну про 
AM> транзакции я даже говорить не буду - это и так понятно.

В sqlite есть всё, кроме вызова внешних функций из dll. Но при этом
функциии из своей программы вызывать можно, оно умеет такое. Поэтому
простая обёртка в несколько строк кода (которая будет подгружать dll) и
всё это у вас уже есть.

AM> Просто насколько я знаю о sqlite - это вещь хороша когда нужно 
AM> sql базу, но приэтом не хочется (или невозможно) ставить 
AM> отдельный сервер БД. У нас как раз одни сервер и куча клиентов к 
AM> нему подключенных и  сним работающих. Причем Есть еще несколько 
AM> серверов БД которые связаны с основной БД (и все это естественно 
AM> в online 24/7).

Таки да, действительно sqlite эффективна именно если с базой работает один
простой. А так где sqlite уже мало, тогда ставится postgresql.

AM> MySQL тут ну совсем не катит. Postgresql еще может быть (я его 
AM> мельком смотрел), но опять же - так сложилось исторически.
AM> Мы даже как-то хотели перевести сервер БД на Linux (лаго есть его 
AM> версия) но не смогли по двум причинам: а) у нас задействованы 
AM> mailslot которых нет в linux и надо тогда переписывать ту часть 
AM> что с mailslot связана (причеми на сервере и на клиентском 
AM> приложении); б) Sybase делают версию под линукс абыкак и 
AM> нормального суппорта ее у sybase.ru не наблюдается (вплоть до 
AM> "покупайте но разбираться будете сами у нас спецов нет").

Однако по функциональности PostgreSQL для вашей задачи выше крыши :)

AM> Вот именно. Так что мы просто не ищем себе большой геморой на 
AM> пятую точку и не пытаемся без НУ очень сильных причин ломать то 
AM> что работает (при этом очень хорошо работает).

А это правильно. Повторюсь, я среагировал на то, что по вашим словам
PowerBuilder более эффективное средство построения таких систем (что
неправда).

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------
Юникод -- не заклинание. Многие gtk1-приложения отлично работают в
unicode locales.
		-- aen in devel@



Подробная информация о списке рассылки smoke-room