Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
ВнизБесплатная Embedded-СУБД Найти похожие ветки
← →
Суслик © (2007-09-27 13:07) [40]
> [39] tesseract © (27.09.07 10:13)
> > к чему ты его будешь приводить в дельфи?
> TField - уникальный класс - приводиться к чему угодно :-)
шойто я начинаю сомневаться в твоей компетентности в обсуждаемом вопросе :)
← →
Anatoly Podgoretsky © (2007-09-27 13:23) [41]> Суслик (27.09.2007 13:07:40) [40]
Ну вообще он наверняка имел ввиду наследников.
Но приводить можно к чему угодно, кроме редких случаев, вот напримек к Integer(TField)
← →
iZEN © (2007-09-27 14:29) [42]
> Ega23 © (26.09.07 13:10)
>
> кроме FB, что ещё есть и где скачать можно?
Apache Derby
← →
tesseract © (2007-09-27 15:34) [43]
> Ну вообще он наверняка имел ввиду наследников.
Конечно,
function TField.GetAsBoolean: Boolean;
begin
raise AccessError("Boolean"); { Do not localize }
end;
function TField.GetAsByteArray: Variant;
begin
VarClear(Result);
if not GetData(@Result, False) then Result := Null;
end;
function TField.GetAsBCD: TBcd;
begin
CurrToBcd(GetAsCurrency, Result);
end;
function TField.GetAsCurrency: Currency;
begin
Result := GetAsFloat;
end;
function TField.GetAsDateTime: TDateTime;
begin
raise AccessError("DateTime"); { Do not localize }
end;
function TField.GetAsFloat: Double;
begin
raise AccessError("Float"); { Do not localize }
end;
function TField.GetAsInteger: Longint;
begin
raise AccessError("Integer"); { Do not localize }
end;
function TField.GetAsSQLTimeStamp: TSQLTimeStamp;
begin
raise AccessError("SQLTimeStamp"); { Do not localize }
end;
function TField.GetAsString: string;
begin
Result := GetClassDesc;
end;
function TField.GetAsWideString: WideString;
begin
Result := GetAsString; // fall back to GetAsString.
end;
function TField.GetAsVariant: Variant;
begin
raise AccessError("Variant"); { Do not localize }
end;
← →
Суслик © (2007-09-28 01:38) [44]
> tesseract © (27.09.07 15:34) [43]
да, спасибо.
только пока в дельфи не будет decimal - это не RAD для DB-clients.
Вот http://qc.codegear.com/wc/qcmain.aspx?d=28022, кстати.
Заметь - открыт.
← →
Petr V. Abramov © (2007-09-28 09:31) [45]> Суслик © (28.09.07 01:38) [44]
> только пока в дельфи не будет decimal - это не RAD для DB-clients.
что ж ты раньше-то молчал, народ вон банковских систем сколько на дельфях наваял :)
но насчет decimal - согласен 100%
← →
Anatoly Podgoretsky © (2007-09-28 10:20) [46]> Petr V. Abramov (28.09.2007 09:31:45) [45]
У них был подлинный BCD, когда они купили dBase - они его успешно похерили, в угоду маркетинговым соображениям.
← →
Суслик © (2007-09-28 10:39) [47]
> но насчет decimal - согласен 100%
> У них был подлинный BCD, когда они купили dBase - они его
> успешно похерили, в угоду маркетинговым соображениям.
ну вот видите, господа, есть зерно разума в моих претензиях.
хорошо хоть Дельфи 14 (это и есть деcimal) тип воспринимает при операторе ":=".
-----
> [45] Petr V. Abramov © (28.09.07 09:31)
> что ж ты раньше-то молчал, народ вон банковских систем сколько
> на дельфях наваял :)
Русскому челу не привыкать. Кстати заметь, что в других языках подобный тип есть. Есть в VB, есть в C#, есть в Java. А вот в дельфи нет
← →
Petr V. Abramov © (2007-09-28 10:59) [48]> Суслик © (28.09.07 10:39) [47]
> Русскому челу не привыкать.
было дело, чтоб не вникать в "особенности вещественных чисел" написал round, который вызывал round с сервера :)))
← →
SPeller © (2007-09-28 16:31) [49]Использовал MySql embedded. Вполне хорошо рабоает. И таскать с собой надо длл и конфиг. Жаль только, что под 5-ю версию embedded нет. Только четверки.
← →
tesseract © (2007-09-28 16:38) [50]
> Жаль только, что под 5-ю версию embedded нет. Только четверки.
Ага, дико вот народ жалеет, что не хватает sybase embedded или Oracle, а по встроенный IBM DB2 я вообще слёзы лью - таскать-то с собой всего 500 мегабайт.
← →
SPeller © (2007-09-28 17:01) [51]а к чему такой сарказм? я понимю что тут дельфимастер и тут местная такая зараза отвечать таким вот образом. но всё-же, по существу?
← →
tesseract © (2007-09-28 17:11) [52]
> но всё-же, по существу?
5-й Мускул тормознее четвёртого процентов на 20-50 и памяти жрёт до чёрта, из-за передоза кривого функционала. В Embedded надо что попроще. Поэтому и топик про то, что полегче.
ЗЫ: И Мускул тут реально не любят :-)
← →
SPeller © (2007-09-28 17:22) [53]Я замеры памяти не производил, поэтому тут не буду спорить )
А по части не любят - от чего-то это самый противный мускул стоит на каждом коммерческом хостинге. Ну, может кроме виндового. Правда, 4-й мускул восновном ставят, на 5-й не торопятся переходить ) Хотя в 5-м и завлены некоторые вкусности.
← →
tesseract © (2007-09-29 10:18) [54]
> от чего-то это самый противный мускул стоит на каждом коммерческом
> хостинге.
Против 3-ей ничего не скажу - многопоточный SQLite. 5-й не ствят потому как он реально никому не нужен, проще поставить слоника.
← →
inoremap (2007-09-29 11:12) [55]2 Суслик [44]
> только пока в дельфи не будет decimal - это не RAD для DB-clients.
Вместо decimal можно использовать библиотеки для работы с рациональными числами, например, эту http://kladovka.net.ru/index.cgi?pid=board&rid=459
она позволяет складывать, вычитать, умножать, делить без потери точности, есть методы для "банковского" и "математического" округления.
← →
Суслик © (2007-09-29 22:06) [56]
> inoremap (29.09.07 11:12) [55]
Спасибо, но
> Библиотека НЕ оптимизировалась на максимальную скорость
> работы, если скорость является критическим параметром следует
> использовать другие библиотеки.
ставит крест, ибо мне некоторый уровень оптимизированности кода важен.
ВОПРОС, может знаешь что-то подходящее?
← →
Petr V. Abramov © (2007-09-30 00:39) [57]> ставит крест, ибо мне некоторый уровень оптимизированности кода важен.
ты какие-то большие циклы гонеяшь с финвычислениями???
← →
Суслик © (2007-09-30 01:22) [58]
> Petr V. Abramov © (30.09.07 00:39) [57]
> > ставит крест, ибо мне некоторый уровень оптимизированности
> кода важен.
> ты какие-то большие циклы гонеяшь с финвычислениями???
да гоняю, да такой я.
в общем хочу быструю бибиотеку для работы с числами 18.10 (18 до запятой 10 после) без чисел с плав. точкой. Т.е. типа работа с цел. 28-цифровыми значениями, в которых точка смещена на 10 знаков влева.
(если у кого есть, можно обсудить коммерческие аспекты моего желания)
← →
sniknik © (2007-09-30 02:01) [59]> можно обсудить коммерческие аспекты моего желания
будеш должен...
> для работы с числами 18.10 (18 до запятой 10 после)
подойдет int64 с отданными 10-ю разрядами под дробь (аналогично currency, только у него 4)
будет число с разрядностью от -922337203.6854775808 до 922337203.6854775807 (19.10), оптимизация лучше не бывает (т.к. это не BCD, не строка или массив а "истинное" число), остается только вывод немного поправить.
← →
sniknik © (2007-09-30 02:07) [60]> 18 до запятой 10 после
упс... не так понял, тебе нужно число 29.10 (так записывается, чтобы получилось 18 до и 10 после.), не обратил внимание на описание, ориентировался по форме записи (так в фокспро задается. привык).
← →
wicked © (2007-09-30 02:08) [61]
> > для работы с числами 18.10 (18 до запятой 10 после)
> подойдет int64 с отданными 10-ю разрядами под дробь (аналогично
> currency, только у него 4)
> будет число с разрядностью от -922337203.6854775808 до 922337203.
> 6854775807 (19.10), оптимизация лучше не бывает (т.к. это
> не BCD, не строка или массив а "истинное" число), остается
> только вывод немного поправить.
а переполнения и сдвиги при умножении/делении? вручную отлавливать?
← →
Суслик © (2007-09-30 02:14) [62]если ответить на вопрос, почему этонужно, то отвечу, что есть АБСОЛЮТНО нормализованная мат. модель - все считается только на том, что вводит пользователь. Поэтому все расчеты дожны работать совершенно одинаково на всех компьюетерах в мире!
пока я использую TDecimal, но он тормозной какой-то :(
← →
sniknik © (2007-09-30 02:42) [63]> а переполнения и сдвиги при умножении/делении? вручную отлавливать?
зачем? знаеш как currency реализован? вот точно также.
работаешь как обычно с целым числом, только в уме держишь, что 10 знаков это за точкой... исключительно для вывода на показ пользователю (для currency это "автоматом").
только все одно не пойдет, разрядности не хватает под требования в [58]. (по форме записи (на что и смотрел) в фоксе первым стоит общая длина числа, вторым разрядов после запятой, подходит. а вот по описанию у него "немного" по другому, сразу + еще десяток разрядов, тут мало)
← →
Суслик © (2007-09-30 02:46) [64]
> sniknik © (30.09.07 02:42) [63]
повторю, что есть oleaut32 тип TDecimal и функции из него.
но он тормозной все же. к тому же не дает гаранитий в детерминированности вычислений. пока я, правда, не обнаружил проблем с детерминированностью на разных ОС, но все же ... гарантии нет.
← →
Petr V. Abramov © (2007-09-30 11:44) [65]> Суслик © (30.09.07 02:14) [62]
переходите к нам на Oracle :)))
до кучи получишь нужную тебе библиотеку, она в составе клиентской части. Не знаю, быстрее она будет чем decimal, или нет, но
> все расчеты дожны работать совершенно одинаково на всех компьюетерах в мире!
гарантировано
← →
inoremap (2007-09-30 16:08) [66]2 Суслик [56]
> ставит крест, ибо мне некоторый уровень оптимизированности кода важен.
> ВОПРОС, может знаешь что-то подходящее?
Вроде есть pascal-биндинги для GNU MP. У меня работа с рациональными числами занимает не больше 10% процессорного времени, некоторые места можно улучшить до 5-10 раз по скорости, но мне что 10% что 1% пока без особой разницы.
← →
Суслик © (2007-09-30 16:28) [67]
> Вроде есть pascal-биндинги для GNU MP
ну там для каких то нестандратных (для меня) паскалей.
все равно спасибо - буду копать.
← →
имя (2007-10-07 22:26) [68]Удалено модератором
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.053 c