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

Вниз

Firebird Embedded vs SQLite   Найти похожие ветки 

 
pasha_golub ©   (2008-07-29 16:55) [40]


> tesseract ©   (29.07.08 16:10) [36]

Простите меня, любезнейший. Но котлеты от Sarcophagidae предпочитаю иметь отдельно. В программировании как в армии - все должно быть подстрижено и покрашено в белый цвет. А именно. Иметь тип.


 
pasha_golub ©   (2008-07-29 16:58) [41]


> tesseract ©   (29.07.08 16:10) [36]


> Да рабаотает там всё. field.ASЧегоВамТам отлично справляеться.

Кстати. Оно, конечно, справляется. Но для быстродействия врядли кто-то будет воротить чачу с наследниками TDataset. Обычно стучаться напрямую через ихнюю АПИ. А вот там таки StrToIntDef.

А даже если через наследника TDataset. Все поля будут TStringField. И зачем, простите?


 
tesseract ©   (2008-07-29 16:59) [42]


> что ты их решать замучаешься


Мне это прекрасно известно, в Cygwin она вроде-как реализована.


 
tesseract ©   (2008-07-29 17:04) [43]


> Все поля будут TStringField. И зачем, простите?


Они при обработке результата запроса превращаються в нормальные значения. Не поддерживаються из актуальных Numeuric и Currency.


 
pasha_golub ©   (2008-07-29 17:07) [44]


> tesseract ©   (29.07.08 17:04) [43]

Я не против. Но вот как же это? Я значить имею колонку Age, а там у меня "больно стара бабулька".

Это зачем же? А сервер (СУБД), я так думаю, должон это дело не пущать.


 
tesseract ©   (2008-07-29 17:14) [45]


> Я значить имею колонку Age, а там у меня "больно стара бабулька".
>  


Date, time, timestamp, DateTime - поддерживаються.


 
ketmar ©   (2008-07-29 19:30) [46]

>[29] tesseract © (2008-07-29 14:57:00)
>Читать и писать одновременно

про это я прямо сказал.

>[32] Anatoly Podgoretsky © (2008-07-29 15:00:00)
>По всем пунктам, ты похвалил так, как будто помоями облил, правда по делу.

дык , довольно плотно с этим работал. знаешь, вроде и ругать не за что (да и некого, знал, что выбирал) — но впечатление осталось. кто меня за руку дёрнул в той задаче SQLite использовать — сам не понимаю

>[35] pasha_golub © (2008-07-29 15:44:00)
>Но мне не улыбается страдать уличной магией типа StrToIntDef каждый раз когда я
>беру значение из набора данных.

магию там написали за тебя, не боись.

>[37] Пробежал... (2008-07-29 16:36:00)
>Не проще ли синхронизировать какой-нибудь поток в процессе?

не проще. проще форкнуться. это никсы, тут fork() несколько, мягко говоря, не то же самое, что и CreateProcess(). и накладные расходы совсем другие. и традиции.

>[38] tesseract © (2008-07-29 16:50:00)
>Хотелось бы такую в винду :-)

Неббет делал, после того, как она показал этот код, я перехотел.

>[42] tesseract © (2008-07-29 16:59:00)
>в Cygwin она вроде-как реализована.

очень через загадоное место, правда.

---
All Your Base Are Belong to Us


 
ketmar ©   (2008-07-29 19:31) [47]

>[46] ketmar © (2008-07-29 19:30:00)
зыж конечно, Гарри — он, а не она. %-)

---
Understanding is not required. Only obedience.


 
ketmar ©   (2008-07-29 19:31) [48]

>[47] ketmar © (2008-07-29 19:31:00)
и, кажется, он даже не Гарри. %-)

---
Do what thou wilt shall be the whole of the Law.


 
Пробежал...   (2008-07-30 13:14) [49]

Всем спасибо за ответы!

Еще возник вопрос - как поступает SQLite, если commit не сделан, а при этом база закрывается, то есть sqlite3_finalize


 
tesseract ©   (2008-07-30 13:50) [50]


> если commit не сделан, а при этом база закрывается, то есть
> sqlite3_finalize


Как и все другие базы.


> вроде и ругать не за что (да и некого, знал, что выбирал)


Только себя там ругать приходиться, очень уж простая база и хорошая документация. Работа с SQL одно удовольствие " как скажешь так и будет".


> Всем спасибо за ответы!


Можно начинать флудеть ?


 
Игорь Шевченко ©   (2008-07-30 14:27) [51]


> и, кажется, он даже не Гарри. %-)


И не Неббет вовсе :)
Гэри он, если что


 
Anatoly Podgoretsky ©   (2008-07-30 14:51) [52]

> Игорь Шевченко  (30.07.2008 14:27:51)  [51]

Человек и пароход.


 
Пробежал...   (2008-07-30 14:55) [53]


> Как и все другие базы.

то есть, делает откат?


 
Пробежал...   (2008-07-30 15:02) [54]

и еще интересно.

Есть функция sqlite3_errmsg, которая по ссылке на запрос возвращает сообщение ошибки.

Есть функция sqlite3_errcode, которая возвращает код ошибки.

А есть функция, которая по коду ошибки вернет текст? У меня в заголовочных файлов нету такой функции... Есть только самописная, в которой case по коду ошибки и самописный текст.


 
tesseract ©   (2008-07-30 15:17) [55]


> А есть функция, которая по коду ошибки вернет текст?


Вопрос а зачем ? Для локализации хватает и case + самописный текст.


 
Пробежал...   (2008-07-30 16:06) [56]

затем, что DLL я использую последней версии, а заголовочные файлы хрен знает когда написаны. Да и где гарантия, что в заголовках описаны все внутренние коды ошибок SQLite"а?

Функция очень логичная все-таки. Или нет?


 
tesseract ©   (2008-07-30 16:34) [57]


> затем, что DLL я использую последней версии,


Статически прилинкуй - так проще и надёжнее.


 
Пробежал...   (2008-07-30 16:50) [58]

вот ты отжог ;)


 
tesseract ©   (2008-07-30 18:00) [59]


> вот ты отжог ;)


Ну я же линкую :-)


 
Украинец   (2008-07-30 18:14) [60]


>
> Пробежал...   (29.07.08 11:48)
>
> Никто не видел сравнения этих двух БД? Плюсы, минусы - отличие?
>
>
> Нужна в принципе не очень сложная поддержка ansi sql.


FB EMB - не хочет работать с базами если она расположена на сетевом диске(можно отключить проверку и перекомпилировать исходники). В остальном FB EMB, особенно после версии 2.1 - это мини Оракл.

Ну а если платформа только Win32/64 то уж лучше Access вместо Sqllite.


 
tesseract ©   (2008-07-30 20:34) [61]


> Ну а если платформа только Win32/64 то уж лучше Access вместо
> Sqllite.


"обновите это", "у вас не совсем нужные драйверы", " где мой суженый .NET" ? нафига всё это ? В придачу кучу ODBC-шных приколов, например не выполнение больше одного SELECT / INSERT ?


 
Loginov Dmitry ©   (2008-07-30 21:54) [62]

> FB EMB - не хочет работать с базами если она расположена
> на сетевом диске


Да помоему никакой FB не хочет этого, а зачем?


 
tesseract ©   (2008-07-30 22:01) [63]


> Да помоему никакой FB не хочет этого, а зачем?


Работает FB проверял на сетевом. Только сетm нужна не коцаное виндовое SMB.


 
Пробежал...   (2008-07-31 10:07) [64]


> Ну я же линкую :-)

это ты молодец ;)

Можно подумать в моем заголовочном файле для библиотеки sqlite3.dll линкова не статическая ;))))
Только как это относится к сути вопроса о том, какие коды ошибок могут возвращать функции SQLite? ;)))


 
tesseract ©   (2008-07-31 10:34) [65]


> какие коды ошибок могут возвращать функции SQLite? ;)))


Это относиться к тому, что незачем обновлять sqlite.

"не трожь работающий сервер"- первая заповедь админа.


 
Пробежал...   (2008-07-31 14:19) [66]

еще раз - где гарантия, что в заголовках для delphi перечислены ВСЕ коды ошибок в SQLite?!
У меня конкретное подозрение, что ты не понимаешь о чем я говорю. причем здесь линковка вообще?!?!

Есть функция в SQLite, которая возвращает код ошибки!!! И как мне этот код перевести в строчку?! Я ж даже не знаю все возможных кодов.

Это блин как GetLastError, ты же понимаешь сколько всего кодов! Поэтому существует то, что делает SysErrorMessage...


 
tesseract ©   (2008-07-31 14:36) [67]


> Это блин как GetLastError, ты же понимаешь сколько всего
> кодов!


FormatMessage :-)


> И как мне этот код перевести в строчку?! Я ж даже не знаю
> все возможных кодов.


http://www.sqlite.org/c3ref/c_abort.html

или sqlite3_errmsg  используй  - но там только для английского языка.


 
Пробежал...   (2008-07-31 16:07) [68]


> FormatMessage :-)

не понимаю, что тебя так веселит. Я говорю, что вот в винде так сделано, есть GetLastError, а есть функция в которой из кода можно сделать текст ошибки, и я хочу такое в SQLite. А ты мне пишешь FormatMessage - спасибо, что сказал!


> http://www.sqlite.org/c3ref/c_abort.html

ну да. И тут же ссылочка на "Extended Result Codes"... С таким же успехом в case можно перечислять все ошибки GetLastError, подход сам по себе неверный. DLL должна уметь по коду ошибки возвращать текст.


> или sqlite3_errmsg  используй  - но там только для английского
> языка.

там нельзя получить текст ошибки по коду.


 
tesseract ©   (2008-07-31 16:09) [69]


> там нельзя получить текст ошибки по коду.


А зачем ? Нужен текст сообщения - вызови функцию, код последней ошибки от этого не измениться.


 
Пробегал2....   (2008-07-31 21:59) [70]

tesseract ©   (31.07.08 16:09) [69]
Нужен текст сообщения - вызови функцию


а дело в том, что мой модуль - лишь абстрактный провайдер к базе данных ;) И логично, чтобы в любое время по коду ошибки я мог получить текст. Так логичнее ;)


 
tesseract ©   (2008-07-31 22:39) [71]


> И логично, чтобы в любое время по коду ошибки я мог получить
> текст. Так логичнее ;)


Возможно, но там ошибок-то 15 штук. В общем ерундой маетесь.


 
Asteroid ©   (2008-07-31 23:22) [72]

Из неприятных особенностей SQLite могу заметить только то, что файл БД не умеет расти большими блоками, так что он склонен к фрагментации и существенному снижению быстродействия. Может быть что-то в 3.х изменилось, но в доках не видел.
Впрочем, не знаю, как дела с этим у FBE :)


 
tesseract ©   (2008-07-31 23:27) [73]


>  не умеет расти большими блоками, так что он склонен к фрагментации
> и существенному снижению быстродействия


Размер странички там не выставишь, sqlite для такого просто не предназначена. Кошмар с блоками начинаеться, если записи удалёються беспорядочно, или неправильно рассчитаны по размеру  - ну это беда всех баз, PostgresQl - там это проблема вообще решению слабо поддаёться. Vacuum - он нереален на работающей базе.


 
Anatoly Podgoretsky ©   (2008-08-01 09:52) [74]

> Пробегал2....  (31.07.2008 21:59:10)  [70]

Пользователь: имею я право получить сообщение по коду ошибки.
имеешь
 
Производитель: имею я право не выдавать сообщение по коду ошибки.
имеешь

Вот права и соблюдены.


 
Пробежал...   (2008-08-01 10:18) [75]


> Vacuum - он нереален на работающей базе.

почему? Там даже опция у БД можно выставить - autovacuum.


 
Asteroid ©   (2008-08-01 21:28) [76]

[73]

> Размер странички там не выставишь, sqlite для такого просто
> не предназначена.


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


 
tesseract ©   (2008-08-01 23:08) [77]

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


 
Loginov Dmitry ©   (2008-08-02 13:04) [78]

> Впрочем, не знаю, как дела с этим у FBE


В FB нужно при создании базы указывать размер страницы. Максимальное и рекомендуемое значение - 16Кбайт. FB или FBE - без разницы. Размер страницы - характеристика базы, а не сервера.


 
Asteroid ©   (2008-08-03 01:09) [79]

> tesseract ©   (01.08.08 23:08) [77]
> Vacuum и есть дефрагментация.

Сдается, мы немного о разных [де]фрагментациях говорим :)


 
Johnmen ©   (2008-08-03 01:20) [80]

Вот интересно, почему, когда какой-нибудь дятел задаст бредовый вопрос, на него тут же ведутся?
Неужели наивность или ЧСВ так сильно развито? Не хотелось бы верить в это...



Страницы: 1 2 3 вся ветка

Текущий архив: 2008.10.19;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.008 c
15-1219939924
Terasbetoni
2008-08-28 20:12
2008.10.19
Установил компонент, а в закладках с компонентами он не появился


2-1221212099
Fynjy
2008-09-12 13:34
2008.10.19
как окрасить компанент Panel?


2-1220965041
ReYo
2008-09-09 16:57
2008.10.19
Тип double


15-1219907118
tesseract
2008-08-28 11:05
2008.10.19
Чего-то все про Абрамова забыли


3-1208328298
Шмелъ
2008-04-16 10:44
2008.10.19
Траблы с LEFT JOIN





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