Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.11;
Скачать: CL | DM;

Вниз

Бесплатная 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;
Скачать: CL | DM;

Наверх




Память: 0.65 MB
Время: 0.025 c
4-1178388982
buben
2007-05-05 22:16
2007.11.11
Application.Handle


15-1191328457
Prohodil Mimo
2007-10-02 16:34
2007.11.11
Delphi + Unicode на Win98, как использовать unicows.dll


2-1192991104
NiGGa
2007-10-21 22:25
2007.11.11
Delphi5 и константы


15-1191803613
Бакук
2007-10-08 04:33
2007.11.11
Fastreport 2 —> FastReport 4 (*.frf —> *.fr3)


2-1192772617
ses
2007-10-19 09:43
2007.11.11
combobox. edit;