Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.088 c
2-1192706459
apic
2007-10-18 15:20
2007.11.11
Курсор


2-1192691195
F@T@L_Err0r
2007-10-18 11:06
2007.11.11
COM1


2-1192512037
saintninja
2007-10-16 09:20
2007.11.11
Работа Без VCL


8-1168878219
Denis_ka
2007-01-15 19:23
2007.11.11
Караоке-проигрыватель


2-1192729888
Jimmy
2007-10-18 21:51
2007.11.11
Сколько памяти занимает программа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский