Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];

Вниз

Бесплатная Embedded-СУБД   Найти похожие ветки 

 
Ega23 ©   (2007-09-26 13:10) [0]

кроме FB, что ещё есть и где скачать можно?


 
Ega23 ©   (2007-09-26 13:13) [1]

Вот тут Яндекс подсказывает про SQLite
Кто пользовался, как она вообще?


 
Вася Правильный   (2007-09-26 13:16) [2]

у Кетмара спроси


 
Sergey13 ©   (2007-09-26 13:22) [3]

Absolut DB (вроде так как-то) многие рекомендуют.


 
tesseract ©   (2007-09-26 13:41) [4]


> Вот тут Яндекс подсказывает про SQLiteКто пользовался, как
> она вообще?


Ну я пользовался - отлично, если работать в одном потоке.


 
Ega23 ©   (2007-09-26 13:45) [5]


> Ну я пользовался - отлично, если работать в одном потоке.


Да, мне локальный DataStorage надо сделать.
Что там нужно-то для работы?


 
matt ©   (2007-09-26 13:57) [6]


> Что там нужно-то для работы?


одна дллка, и простейший интерфейсный файлик..
использую уже с полгода - очень доволен


 
tesseract ©   (2007-09-26 14:02) [7]

Да есть давно датасеты : http://www.aducom.com/cen/news.php


 
Ega23 ©   (2007-09-26 14:21) [8]


> tesseract ©   (26.09.07 14:02) [7]


Макс, чё-то я не понял, где там загрузка.
Можешь мне на мыло выслать, коль скачивал уже?


 
DVM ©   (2007-09-26 14:26) [9]


> Ega23 ©   (26.09.07 14:21) [8]

http://www.aducom.com/cen/download.php?list.11


 
PEAKTOP ©   (2007-09-26 15:11) [10]

А че, MySQL уже не поддерживает Embedded ?


 
Черный Шаман   (2007-09-26 16:09) [11]

Ня
Absolute Database
http://www.componentace.com/bde_replacement_database_delphi_absolute_database.htm
SQLite4Delphi
http://sqlite4delphi.sourceforge.net/


 
Ega23 ©   (2007-09-26 16:10) [12]

ОК, всем спасибо!


 
tesseract ©   (2007-09-26 16:15) [13]


> А че, MySQL уже не поддерживает Embedded ?


На кой она после 3-ей версии вообще нужна ?


 
Суслик ©   (2007-09-26 16:25) [14]

знатокам sql-lite

sqlite.dll  это что?
где ее брать в исходниках?


 
tesseract ©   (2007-09-26 16:28) [15]


> sqlite.dll  это что?где ее брать в исходниках?


А зачем она ? Адукомовская статически может вставиваться. А про с-шник ты удивишься - http://sqlite.org/


 
Суслик ©   (2007-09-26 16:44) [16]


> А про с-шник ты удивишься

странная у тебя, однако, манера общения.

все равно спасибо :)


 
tesseract ©   (2007-09-26 16:49) [17]


> странная у тебя, однако, манера общения.


привык, что её все знают :-) + 12 дятлов  по магазмнам :-)


 
Суслик ©   (2007-09-26 16:59) [18]

как же не жватает в дельфи типа аля numberic или decimal.
блин, а ее еще расценивают как РАД для клиента базы данных.


 
tesseract ©   (2007-09-26 17:12) [19]


> как же не жватает в дельфи типа аля numberic или decimal


А поля  в двух разных СУБД всегда одинаковыми бывают ?


 
Суслик ©   (2007-09-26 17:33) [20]

Ну есть тип decimal(28,10)
если не ошибаюсь он есть в стандарте.

так в дельфи нет аналога прямого.

судя по QC они сами давно это заметили, даже пооткрывали несколько репортов по темен decimal. Но пока тишина.


 
tesseract ©   (2007-09-26 17:40) [21]


> так в дельфи нет аналога прямого.


Бинарных полей, тоже нет. Вот это меня больше беспокоит  :-)


 
Суслик ©   (2007-09-26 17:44) [22]


> Бинарных полей, тоже нет. Вот это меня больше беспокоит
>  :-)


кого чего беспокоит.
меня все же беспокоит отсутствие decimal.
пока перебиваюьс юзая TDecimal из ActiveX и функции аля "VarDecAdd" и пр. из oleaut32.dll.
Но как-то это достало. Вот почему currency сделалали, а Decimal - нет? несправедливо.

ЗЫ. Оффтоп, конечно это, уж извинит. Просто я посмотрел на SQLLite. Сам по себе он decimal подерживает. А вот в дельфи только BCD.


 
tesseract ©   (2007-09-26 17:49) [23]


>  Сам по себе он decimal подерживает. А вот в дельфи только
> BCD.


Да на кой он так сильно нужен ? Хотя что-то вроде делал - на WinCe работало и понимало.


 
Суслик ©   (2007-09-26 18:08) [24]

Он точный. Никаких тебе закидонов плавающей точки.
Т.е. 0.1321231 = 0.1321231 всегда равно true вне зависимости от того, как получены 0.1321231 слева и справа.


 
Черный Шаман   (2007-09-26 18:32) [25]


> Суслик ©   (26.09.07 18:08) [24]


Double?


 
matt ©   (2007-09-26 18:57) [26]


> Просто я посмотрел на SQLLite. Сам по себе он decimal подерживает.
>  А вот в дельфи только BCD.


она, кажется, вообще все в строках хранит


 
Суслик ©   (2007-09-26 18:57) [27]


> [25] Черный Шаман   (26.09.07 18:32)
> > Суслик ©   (26.09.07 18:08) [24]
> Double?

все равно вычисления не точные
например в таком коде

var
  d: double;
begin
  d := 1207;
  d := - d/ 2 + (d * 2 - d / 4) / 5 + d + d / 10 + d / 20 - d + d / d;
end;


в не равно 1, а равно 0.9999999999999сфигом.

для финансовых вычислений хочеца, чтобы было точно.


 
Черный Шаман   (2007-09-26 19:30) [28]

Нууу есть чудесная функция RoundTo


var
  d: double;
begin
 d := 1207;
 d := - d/ 2 + (d * 2 - d / 4) / 5 + d + d / 10 + d / 20 - d + d / d;
 d := RoundTo(d, -12);
 if d = 1.0 then
   ShowMessage(FloatToStr(d));


 
Суслик ©   (2007-09-26 19:39) [29]


> Нууу есть чудесная функция RoundTo

ну если ты такой умный, скажи - зачем придуман тип Currency?


 
pasha_golub ©   (2007-09-26 20:31) [30]


> Суслик ©   (26.09.07 19:39) [29]


> ну если ты такой умный, скажи - зачем придуман тип Currency?

Для операций с деньгаме. Ну, а что тут такого. А decimal(28,12) это уже, мать его, ядерная физика. Котрая встречается один раз в году и то на ходу


 
tesseract ©   (2007-09-26 21:20) [31]


> ну если ты такой умный, скажи - зачем придуман тип Currency?


Округление у него банковское. Все эти decimal и тд - всё равно производные для базовых типов, но приведение происходит на сервере.


 
Суслик ©   (2007-09-26 21:33) [32]


> Все эти decimal и тд - всё равно производные для базовых
> типов, но приведение происходит на сервере.

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


 
tesseract ©   (2007-09-26 21:44) [33]


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


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


 
Суслик ©   (2007-09-26 21:55) [34]

да я вроде не о том - нет в дельфи типа в датасете, эквивалнтного decimal.
я об этом. а ты о чем?


 
Черный Шаман   (2007-09-26 21:55) [35]


> Суслик ©   (26.09.07 21:33) [32]
>
>
> > Все эти decimal и тд - всё равно производные для базовых
> > типов, но приведение происходит на сервере.
>
> поясни мысль, будь добр, немного более развернуто.


Как ты думаешь, как на самом деле работает Currency?

По-моему мнению как RoundTo(d, -2);, но с проверкой на управляющее слово(банковского округления).

Напиши себе функции
Add, Sub, Mul, Div и радуйся


 
tesseract ©   (2007-09-26 22:09) [36]


> По-моему мнению как RoundTo(d, -2);, но с проверкой на управляющее
> слово(банковского округления).


Типа того, но с SQL проблемы.


> да я вроде не о том - нет в дельфи типа в датасете, эквивалнтного
> decimal.я об этом. а ты о чем?


Что он, всего лишь приведённый базовый тип. Можно привести и на клиенте - не так уж он часто нужен.


 
Суслик ©   (2007-09-26 22:19) [37]


> Можно привести и на клиенте - не так уж он часто нужен.

шото я тебя решительно не понимаю.
есть mssql, есть тип decimal(28,10)
к чему ты его будешь приводить в дельфи?


 
Ega23 ©   (2007-09-27 09:56) [38]


> к чему ты его будешь приводить в дельфи?


К строке


 
tesseract ©   (2007-09-27 10:13) [39]


> к чему ты его будешь приводить в дельфи?


TField - уникальный класс - приводиться к чему угодно :-)


 
Суслик ©   (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.63 MB
Время: 0.061 c
10-1139905588
nastya
2006-02-14 11:26
2007.11.11
EIntfCastError


2-1192790942
Shakesbeer
2007-10-19 14:49
2007.11.11
Работа с com-портом.


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


2-1192591433
balepa
2007-10-17 07:23
2007.11.11
Access Violation or Invalide Pointer operation


2-1192716272
AntonS
2007-10-18 18:04
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский