|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Здравствуйте Создал таблицу для записи писем с почты CREATE TABLE `RawMails` ( rawmail_id TEXT NOT NULL, rawmail_moment TEXT NOT NULL, rawmail_content TEXT NOT NULL, PRIMARY KEY(rawmail_id) ) Я считал, прочтя обзор SQLite, что ограничений на размер нет. Но столкнулся с неприятным ограничением: при превышении чуть более 43 кбайт данные в поле rawmail_content не пишутся вообще. C чем может быть это связано? версия 1.0.80.0 по Net ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2012, 16:13 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Arm79, а чем пишете? кроме того есть директива -DSQLITE_MAX_LENGTH в которой можно указать размер таких данных, по умолчанию она равна 1,000,000,000 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2012, 16:48 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Да я использую Net версию и пытаюсь сейчас сообразить, как можно в ней поиграться с параметрами SQLITE_MAX_SQL_LENGTH, SQLITE_LIMIT_LENGTH, SQLITE_LIMIT_SQL_LENGTH DSQLITE_MAX_LENGTH - по умолчанию лимон. Ну так у меня сильно меньше. Вот, кстати, исходники: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
PS Вообще в первый раз работаю с SQLite, поэтому многие очевидные опытным товарищам вещи просто не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2012, 16:56 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Arm79, с этими параметрами (директивами) поиграться получиться при сборке библиотеки SQLite Arm79DSQLITE_MAX_LENGTH - по умолчанию лимон чуть больше :-) The default value of this macro is 1 billion в Net не работал, но могу предположить что DbType.String все таки имеет ограничение по размеру явно меньшее чем то что позволяет SQLite ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2012, 17:09 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
pit_alexArm79, с этими параметрами (директивами) поиграться получиться при сборке библиотеки SQLite Arm79DSQLITE_MAX_LENGTH - по умолчанию лимон чуть больше :-) The default value of this macro is 1 billion в Net не работал, но могу предположить что DbType.String все таки имеет ограничение по размеру явно меньшее чем то что позволяет SQLite Увы, DbType.String - это тип данных строка Unicode, размер которой задается следующим параметром ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2012, 17:28 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Arm79, а что то типа dbType.Text нету? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2012, 18:39 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Arm79, и откуда (чей) SQLiteConnection? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2012, 18:39 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
> Arm79 Код: vbnet 1.
> Увы, DbType.String - это тип данных строка Unicode, размер которой задается следующим параметром Зачем СТОЛЬКО ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2012, 23:23 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
pit_alexArm79, а что то типа dbType.Text нету? Нету ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 08:25 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
pit_alexArm79, и откуда (чей) SQLiteConnection? Штатный провайдер для .Net (System.Data.SQLite). Скачан с сайта производителя :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 08:26 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Stupid_BOT> Arm79 Код: vbnet 1.
> Увы, DbType.String - это тип данных строка Unicode, размер которой задается следующим параметром Зачем СТОЛЬКО ? Для очистки совести. По умолчанию, если в .Net не указать размер типа данных Строка, окружение считает его равным по умолчанию 8000. Что касается действительного размера писем, то это письма из системы электронного документооборота, и объем вложений достигает 15 мегабайт. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 08:29 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Arm79, как я уже говорил, я от NET далек, но думаю этот вопрос стоит задать разработчикам System.Data.SQLite, или попробовать использовать что нибудь стороннее, у Devart есть ADO .NET провайдер под SQLite ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 16:00 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
pit_alexArm79, как я уже говорил, я от NET далек, но думаю этот вопрос стоит задать разработчикам System.Data.SQLite, или попробовать использовать что нибудь стороннее, у Devart есть ADO .NET провайдер под SQLite Да, спасибо за помощь, смотрю исходники провайдера А сторонние - платные, не очень интересно использовать при наличии иных бесплатных альтернатив. Если не пойму, в чем проблема, перейду на SQL Compact ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 16:07 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Arm79, сдается мне что дело не в Lite и даже не в провайдере потому как вот такой код вставляет в базу строку размером 500000 символов Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
может глючит получение тела письма в mail.Content? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 16:59 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
pit_alex, в поле TEXT ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 17:00 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
pit_alexArm79, сдается мне что дело не в Lite и даже не в провайдере потому как вот такой код вставляет в базу строку размером 500000 символов Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
может глючит получение тела письма в mail.Content? Нет, в mail.content все данные в наличии. Для теста я вообще использовал преобразованный к base64 файл (пример сверху) А какую версию Провайдера вы использовали? Я скачал 1.0.80.0 PS так делать нельзя, кучу времени на перераспределение памяти потеряете: Код: c# 1. 2. 3. 4. 5.
Так вполне достаточно Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 17:25 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
я брал вот эту сборку: sqlite-netFx40-binary-Win32-2010-1.0.80.0.zip а кто-нибудь на пальцах может объяснить различие между сборками sqlite-netFx40-binary-bundle-Win32-2010-1.0.80.0.zip и sqlite-netFx40-binary-Win32-2010-1.0.80.0.zip? Что за bundle? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 17:35 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
pit_alex, Значит проблема все-таки либо в SQLite (что сомнительно), либо в реализации. Тк скачанный вами провайдер от 2010 года и под версию 3.6.23.1. Я скачивал под версию 3.7.11 В любом случае большое спасибо за потраченное на меня время и за ковыряние .Net с целью повторения тестового примера. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 17:44 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Arm79, уже самому стало интересно, скачал версию 1.0.80.0 (инсталлятор) и строка Код: c# 1.
все равно вставляеться :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 18:10 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
Arm79, как-то подозрительно 43к похожи на число 2^15 (максимум для 2-байтного целого со знаком) * 4/3 (увеличение размера данных после обработки base64) может, в коде ошибка где-то до вставки в БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 18:23 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
43K это имеенно из-за того, что в тексте есть английские и русские буквы. При кодировке в UTF-8 получаем не в 2 раза больше байтиков, а меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 18:30 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
metos, не силен в C#, но, вроде, в БД летит Base64 - там только инглиш. и откуда инфа о utf-8? может, ТС исползует utf-16?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 18:35 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
завтра выложу весь сольюшн :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2012, 18:48 |
|
размер данных в поле типа TEXT
|
|||
---|---|---|---|
#18+
http://wincode.org/dotnet/sqlite-in-dotnet Типы данных. Одно из основных преимуществ SQLite — легкость и компактность. Однако, за это приходиться платить. В частности тем, что в нашем распоряжении всего 5 типов данных. Ниже приведен их список, и как они соотносятся с типами в .NET. NULL -> null INTEGER -> long (System.Int64) REAL -> float (System.Single) TEXT -> string (System.String) BLOB -> byte[] (System.Byte[]) http://stackoverflow.com/questions/625029/how-do-i-store-and-retrieve-a-blob-from-sqlite http://wladm.narod.ru/C_Sharp/sqlite.html ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2012, 00:10 |
|
|
start [/forum/topic.php?fid=54&tid=2009031]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 402ms |
0 / 0 |