). Пора подводить итоги 18 часового марафона борьбы с SQLite, итак:
С SQL у SQLite как у всех встроенных плоховато — неподдерживаются TOP, большая часть ALTER TABLE и объединения RIGHT JOIN и FULL OUTER JOIN. Плюс как-то странно воспринимает круглые скобки в части FROM запросов на выборку — alias-ы таблиц объявленные в скобках снаружи скобок не видны например в запросе:
SELECTro.[id]AS [id],
ro.[mid]AS [messageid],
[rate],
[usernick],
[subject],
sf.[name] AS [forumname]
FROM([rate_outbox] ro
INNER JOIN [messages] m ON ro.[mid] = m.[mid])INNER JOIN [server_forums] sf ON m.[gid] = sf.[id]";
из-за выделенных скобок ругается на ro.[id] и ro.[mid].
Visual Studio и SQLite то же не без странностей — непереваривает некоторые таблицы Janus-а например rating вплоть до зависаний, падений студии и сообщений:
---------------------------
Microsoft Visual Studio
---------------------------
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
---------------------------
ОК
---------------------------
Теперь о хорошем что же сделано:
Реструктуризатор — позволяет создать БД и восстановить некоторые вещи если они убиты, правда отличается нездоровой любовью к пересозданию индексов (вобщем как-то работает)
Диалог выбора и конфигурации БД доработан
Практически работающая синхронизация
Теперь снова о плохом:
В виду того что ALTER TABLE практически не реализован реструктуризатор скорее не работает, чем работает
В виду того что TOP не поддерживается пришлось переделать в ScriptFactory свойство Top в метод Top(expression) и выдавать в нем пустую строку, поидее надо также во всех местах где он используется результат обрезать руками (не зделано).
В виду того что в UPDATE не поддерживаются Alias-ы таблицы, то надо переписывать DatabaseManager.MarkOlderThan
В связи со странным восприятием круглых скобок надо посмотреть все запросы внимательно + часть наверно придется переписать.
Ну и наконец самое неприятное при синхронизации валится в самом конце при обновлении LastVersion-ов в таблице vars с сообщением о блокировке БД.
Здравствуйте, rameel, Вы писали:
0rc>>Супер. Это по теме. Теперь вопрос. Кто-нибудь делал сравнительную характеристику, насколько быстрее медленее будет работать RSDN@Home с SQLLite по сравнению с MSSQL 2000? R>ИМХО, сравнивать еще не с чем. По моему еще не все запросы отлажены до конца. Вот когда дойдет до рабочего состояния, тогда может попробую импортнуть данные в базу и сравнить характеристики.
Ну уже более менее работает и залито в SVN (731 ревизия) — можно проверять.
Здравствуйте, rsn81, Вы писали:
ДА>>Понятно, такое уже видел. Вечером буду дома поправлю. R>Быть может вы также найдете время и вот эти мелочи исправить? Заранее благодарен.
тоже поправил)
R>В таблице "Статистика сообщений пользователя" в столбце Форум не отображается собственно название форума. Не знаю, связано ли это именно с SQLite... но вроде бы с FB было нормально.
Не знаю, но после того как я исправил, то что далее столбец форум заполнен, может наведенка?
R>После шальной попытки упаковать БД (командой меню Файл) в собственном профиле в пункте "Первое сообщение" теперь отображается сообщение "Не удается запустить приложение. Системная база данных отсут" следующего содержания:[q]Ошибка: R>Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем.
Скачал и запустил янус в первый раз Создал базу с скллайт и получил ошибку
Rsdn.Janus.DBSchemaException: Ошибка на этапе реструктуризации базы:
Error when prepared SqlDiff
в Rsdn.Janus.DbsmManager.Restruct(IGenericServiceProvider serviceProvider)
в Rsdn.Janus.Janus.Main()
Обновленный вариант, переделал запросы надуюсь все (но может что забыл) проверял:
Синхронизация (+оборванные ветки)
Новая тема
Сообщение в тему
Оценки
Пометить как прочитанное до указанной даты (вот здесь сильно не уверен так как запрос пришлось корежить сильно)
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Ну и наконец самое неприятное при синхронизации валится в самом конце при обновлении LastVersion-ов в таблице vars с сообщением о блокировке БД.
Это вобщем-то легко объяснимо: в Janus\Core\Synchronization\Synchronizer.cs в методе ProcessSvcResponse имеем
using (JanusDB db = new JanusDB())
{
db.BeginTransaction();
// ...
DBVars.Instance["LastRatingRowVersion"] = SpecialByteConvertor.ToString(svcResp.lastRatingRowVersion);
DBVars.Instance["LastForumRowVersion"] = SpecialByteConvertor.ToString(svcResp.lastForumRowVersion);
// ...
db.ComminTransaction();
}
Так вот, при попытке присвоить значение переменной, хранящейся в БД (DBVars.Instance = smth) создаётся параллельный Update в своём собственном JanusDB.
А вот этого-то SQLite и не может.
Если эти две строчки тупо вынести за Using (один фиг они выполняются сами по себе и не синхронизованы с основной транзакцией) то всё работает.
Ну, почти всё. В Janus\Core\DataManagement\DatabaseManager.cs в методе UpdateTopicInfoByFilter имеем
if (!string.IsNullOrEmpty(filter))
sql = sql + "AND " + filter;
а должно быть
if (!string.IsNullOrEmpty(filter))
sql = sql + " AND " + filter;
Иначе "AND" приклеивается к завершающемуся "= 0" и получается синтаксическая ошибка.
Дальше всё пучком кроме того что sqlite теряет колонку mid на Join'е. Но это я так понял ты уже научился побеждать.
Если нет — пиши будет вместе думать.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>В виду того что TOP не поддерживается пришлось переделать в ScriptFactory свойство Top в метод Top(expression) и выдавать в нем пустую строку, поидее надо также во всех местах где он используется результат обрезать руками (не зделано). Здесь
Здравствуйте, Дьяченко Александр, Вы писали:
БП>>Так вот, при попытке присвоить значение переменной, хранящейся в БД (DBVars.Instance = smth) создаётся параллельный Update в своём собственном JanusDB. БП>>А вот этого-то SQLite и не может.
ДА>странно вроде работа паралельная заявлена или она одно из обращений блокирует при этом (а так как из одного потока, то первое обращение блокирует а второе где как раз происходит запись в vars получает отлуп)?
Заявлено паралельное чтение. А запись только в одни руки.
ДА>Я наверно у DBVars сделаю еще один индексатор с 2 параметрами JanusDB и string так наверно правильнее будет (а не выносить за using).
+1.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>здесь
Отсюда без проблем. Вообще, лучший файлообменник это gmalfs но rapidshare тоже ничего.
Вобщем всё скачалось и собралось. Буду пробовать.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Вобщем у меня базу создает (3 раза пробывал), выкладывай ошибку полностью может что будет ясно.
Я уже поправил. бага была такая:
За оценки конечно спасибо. Если кто поможет/подскажет что делать с вот этим: ДА>
ДА>Ну и наконец самое неприятное при синхронизации валится в самом конце при обновлении LastVersion-ов в таблице vars с сообщением о блокировке БД. ДА>
То в течении недели я добил бы и выложил бы куда-нить, то что получилось.
Заодно попробывал бы избавится от применения enum-а DbEngineType везде кроме реструктуризатора (сильно портит нервы при добавлении новой БД), в принципе в реструктуризаторе тоже наверно можно избавится, но туда у меня лезть особого желания нет.
Шаги в данном направлении сделаны в части моего кода надо переписать слегка остальные.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>За оценки конечно спасибо. Если кто поможет/подскажет что делать с вот этим: ДА>То в течении недели я добил бы и выложил бы куда-нить, то что получилось.
Так скажи, где можно пощупать то, что уже есть?
Здравствуйте, Блудов Павел, Вы писали:
ДА>>За оценки конечно спасибо. Если кто поможет/подскажет что делать с вот этим: ДА>>То в течении недели я добил бы и выложил бы куда-нить, то что получилось. БП>Так скажи, где можно пощупать то, что уже есть?
На RSDN места не хватает. выкладываю на filepost.ru — здесь
Здравствуйте, Блудов Павел, Вы писали:
ДА>>За оценки конечно спасибо. Если кто поможет/подскажет что делать с вот этим: ДА>>То в течении недели я добил бы и выложил бы куда-нить, то что получилось. БП>Так скажи, где можно пощупать то, что уже есть?
На RSDN места не хватает. выкладываю на filepost.ru — здесь. Там исходники + маленькая БД (пользователи + форумы + достаточно свежие LastVersion в таблице vars) если с нуля при синхронизации пытается выкачать 80 метров (из-за вырезания TOP-ов наверное) а мне через мобильнк такое не выкачать.
Здравствуйте, Блудов Павел, Вы писали:
ДА>>Ну и наконец самое неприятное при синхронизации валится в самом конце при обновлении LastVersion-ов в таблице vars с сообщением о блокировке БД.
БП>Это вобщем-то легко объяснимо: в Janus\Core\Synchronization\Synchronizer.cs в методе ProcessSvcResponse имеем БП>
БП>Так вот, при попытке присвоить значение переменной, хранящейся в БД (DBVars.Instance = smth) создаётся параллельный Update в своём собственном JanusDB. БП>А вот этого-то SQLite и не может.
странно вроде работа паралельная заявлена или она одно из обращений блокирует при этом (а так как из одного потока, то первое обращение блокирует а второе где как раз происходит запись в vars получает отлуп)?
БП>Если эти две строчки тупо вынести за Using (один фиг они выполняются сами по себе и не синхронизованы с основной транзакцией) то всё работает. БП>Ну, почти всё. В Janus\Core\DataManagement\DatabaseManager.cs в методе UpdateTopicInfoByFilter имеем БП>
БП>Иначе "AND" приклеивается к завершающемуся "= 0" и получается синтаксическая ошибка.
это я не трогал.
БП>Дальше всё пучком кроме того что sqlite теряет колонку mid на Join'е. Но это я так понял ты уже научился побеждать. БП>Если нет — пиши будет вместе думать.
Ок. Буду дальше ковырять. Я наверно у DBVars сделаю еще один индексатор с 2 параметрами JanusDB и string так наверно правильнее будет (а не выносить за using).
Здравствуйте, rameel, Вы писали:
ДА>>Забирать здесь
R>Не скачивается. Может лучше у AndrewVK за доступом в репозитории, а там можно и бранч сделать, много удобнее будет, чем каждый раз файлы заливать
Попробуй с другого места у меня вроде дает скачать, к тому же написано что скачано 4 раза.
Да через SVN было бы лучше. Ладно попробую написать AndrewVK.
Здравствуйте, Блудов Павел, Вы писали:
ДА>>странно вроде работа паралельная заявлена или она одно из обращений блокирует при этом (а так как из одного потока, то первое обращение блокирует а второе где как раз происходит запись в vars получает отлуп)? БП>Заявлено паралельное чтение. А запись только в одни руки.
Супер. Это по теме. Теперь вопрос. Кто-нибудь делал сравнительную характеристику, насколько быстрее медленее будет работать RSDN@Home с SQLLite по сравнению с MSSQL 2000?
Здравствуйте, 0rc, Вы писали:
0rc>Супер. Это по теме. Теперь вопрос. Кто-нибудь делал сравнительную характеристику, насколько быстрее медленее будет работать RSDN@Home с SQLLite по сравнению с MSSQL 2000?
ИМХО, сравнивать еще не с чем. По моему еще не все запросы отлажены до конца. Вот когда дойдет до рабочего состояния, тогда может попробую импортнуть данные в базу и сравнить характеристики.
Здравствуйте, Блудов Павел, Вы писали:
БП>У Оракла, катсти, TOP называется FETCH FIRST ### ROWS ONLY и тоже пишется в конце.
DB2, конечно. У Оракла страый добрый
SELECT * FROM (<original query>) WHERE ROWNUM < ###
У FireBird SELECT FIRST ###. Вощем кто во что горазд.
Здравствуйте, Блудов Павел, Вы писали: БП>В связи с чем идея: вынести поддержку SELECT TOP в провайдера.
Альтернативная идея: внести поддержку Firebird, LiteSQL и Oracle в Linq. Там есть Take() и Skip() БП>Например провайдеру передаётся
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Огромное спасибо!
Вроде бы очень шустро работает, хотя размер базы пока мелкий.
Замечание (пробовал в ревизии 733):
Не получается скачать отдельную ветку. К примеру, выбираю Действие > Скачать тему..., указываю ID этой темы 2634329 — и получаю:
BLToolkit.Data.DataException: Abort due to constraint violation
download_topics.id may not be NULL ---> System.Data.SQLite.SQLiteException: Abort due to constraint violation
download_topics.id may not be NULL
в System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
в System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
в System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
в BLToolkit.Data.DbManager.ExecuteNonQueryInternal()
--- Конец трассировки внутреннего стека исключений ---
в BLToolkit.Data.DbManager.OnOperationException(OperationType op, Exception ex)
в BLToolkit.Data.DbManager.ExecuteNonQueryInternal()
в BLToolkit.Data.DbManager.ExecuteNonQuery()
в Rsdn.Janus.JanusDB.Execute(String sql, Object[] parameters)
в Rsdn.Janus.JanusDB.ExecuteNonQuery(String sql, Object[] parameters)
в Rsdn.Janus.DatabaseManager.InsertDownloadTopic(String source, Int32 messageId, String hint)
в Rsdn.Janus.DownloadTopicCollection.Add(String source, Int32 messageId, String hint)
в Rsdn.Janus.ForumDummyForm.AddTopicForDownload(Int32 messageID)
в Rsdn.Janus.ForumDummyForm.DownloadTopic()
в Rsdn.Janus.Framework.StripEventDispatcher.DispatchEvent(String eventId)
в Rsdn.Janus.Framework.StripEventDispatcher.ClickHandler(Object sender, EventArgs e)
в System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
в System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
в System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
в System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
в System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
в System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
в System.Windows.Forms.ToolStrip.WndProc(Message& m)
в System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Здравствуйте, rsn81, Вы писали:
R>Огромное спасибо! R>Вроде бы очень шустро работает, хотя размер базы пока мелкий.
R>Замечание (пробовал в ревизии 733): R>Не получается скачать отдельную ветку. К примеру, выбираю Действие > Скачать тему..., указываю ID этой темы 2634329 — и получаю:[q]BLToolkit.Data.DataException: Abort due to constraint violation R>download_topics.id may not be NULL ---> System.Data.SQLite.SQLiteException: Abort due to constraint violation R>download_topics.id may not be NULL
Понятно, такое уже видел. Вечером буду дома поправлю.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Понятно, такое уже видел. Вечером буду дома поправлю.
Быть может вы также найдете время и вот эти мелочи исправить? Заранее благодарен.
В таблице "Статистика сообщений пользователя" в столбце Форум не отображается собственно название форума. Не знаю, связано ли это именно с SQLite... но вроде бы с FB было нормально.
После шальной попытки упаковать БД (командой меню Файл) в собственном профиле в пункте "Первое сообщение" теперь отображается сообщение "Не удается запустить приложение. Системная база данных отсут" следующего содержания:
Ошибка:
Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем.
Описание:
Версия приложения:
RSDN@Home версия 1.2.0 alpha ревизия 676
Трассировка стека:
в JRO.JetEngineClass.CompactDatabase(String SourceConnection, String Destconnection)
в Rsdn.Janus.DatabaseManager.PackDatabase()
в Rsdn.Janus.MainForm.PackDatabase()
в Rsdn.Janus.Framework.StripEventDispatcher.DispatchEvent(String eventId)
в Rsdn.Janus.Framework.StripEventDispatcher.ClickHandler(Object sender, EventArgs e)
в System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
в System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
в System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
в System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
в System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
в System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
в System.Windows.Forms.ToolStrip.WndProc(Message& m)
в System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Вместо отображения администрации форума получаем:
BLToolkit.Data.DataException: SQLite error
no such column: users.userclass ---> System.Data.SQLite.SQLiteException: SQLite error
no such column: users.userclass
в System.Data.SQLite.SQLite3.Prepare(String strSql, SQLiteStatement previous, String& strRemain)
в System.Data.SQLite.SQLiteCommand.BuildNextCommand()
в System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index)
в System.Data.SQLite.SQLiteDataReader.NextResult()
в System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
в System.Data.SQLite.SQLiteCommand.ExecuteDbDataReader(CommandBehavior behavior)
в System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
в BLToolkit.Data.DbManager.ExecuteReaderInternal(CommandBehavior commandBehavior)
--- Конец трассировки внутреннего стека исключений ---
в BLToolkit.Data.DbManager.OnOperationException(OperationType op, Exception ex)
в BLToolkit.Data.DbManager.ExecuteReaderInternal(CommandBehavior commandBehavior)
в BLToolkit.Data.DbManager.ExecuteListInternal[T](IList`1 list, Object[] parameters)
в BLToolkit.Data.DbManager.ExecuteList[T]()
в Rsdn.Janus.JanusDB.ExecuteList[T](String sql, Object[] parameters)
в Rsdn.Janus.DatabaseManager.GetUsers(Boolean onlyTeam)
в Rsdn.Janus.HtmlPageBuilder.GetTeamList()
в Rsdn.Janus.JanusProtocolDispatcher.TeamListEventHandler(Object sender, JanusProtocolEventArgs e)
в Rsdn.Janus.JanusProtocolDispatcher.DispatchRequest(String path)
Вместо отображения статей форума получаем:
BLToolkit.Data.DataException: SQLite error
no such column: m.dte ---> System.Data.SQLite.SQLiteException: SQLite error
no such column: m.dte
в System.Data.SQLite.SQLite3.Prepare(String strSql, SQLiteStatement previous, String& strRemain)
в System.Data.SQLite.SQLiteCommand.BuildNextCommand()
в System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index)
в System.Data.SQLite.SQLiteDataReader.NextResult()
в System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
в System.Data.SQLite.SQLiteCommand.ExecuteDbDataReader(CommandBehavior behavior)
в System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
в BLToolkit.Data.DbManager.ExecuteReaderInternal(CommandBehavior commandBehavior)
--- Конец трассировки внутреннего стека исключений ---
в BLToolkit.Data.DbManager.OnOperationException(OperationType op, Exception ex)
в BLToolkit.Data.DbManager.ExecuteReaderInternal(CommandBehavior commandBehavior)
в BLToolkit.Data.DbManager.ExecuteListInternal[T](IList`1 list, Object[] parameters)
в BLToolkit.Data.DbManager.ExecuteList[T]()
в Rsdn.Janus.JanusDB.ExecuteList[T](String sql, Object[] parameters)
в Rsdn.Janus.DatabaseManager.GetArticleList(Int32 gid)
в Rsdn.Janus.HtmlPageBuilder.GetArticleListText(Int32 gid)
в Rsdn.Janus.JanusProtocolDispatcher.ArticleEventHandler(Object sender, JanusProtocolEventArgs e)
в Rsdn.Janus.JanusProtocolDispatcher.DispatchRequest(String path)
BLToolkit.Data.DataException: Abort due to constraint violation
favorites.id may not be NULL ---> System.Data.SQLite.SQLiteException: Abort due to constraint violation
favorites.id may not be NULL
в System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
в System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
в System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
в BLToolkit.Data.DbManager.ExecuteNonQueryInternal()
--- Конец трассировки внутреннего стека исключений ---
в BLToolkit.Data.DbManager.OnOperationException(OperationType op, Exception ex)
в BLToolkit.Data.DbManager.ExecuteNonQueryInternal()
в BLToolkit.Data.DbManager.ExecuteNonQuery()
в Rsdn.Janus.DatabaseManager.InsertFavoritesLink(FavoritesLink link)
в Rsdn.Janus.FavoritesManager.AddMessageLink(Int32 messageId, String comment, FavoritesFolder folder)
в Rsdn.Janus.ForumDummyForm.AddToFavorites()
в Rsdn.Janus.Framework.StripEventDispatcher.DispatchEvent(String eventId)
в Rsdn.Janus.Framework.StripEventDispatcher.ClickHandler(Object sender, EventArgs e)
в System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
в System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
в System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
в System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
в System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
в System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
в System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
в System.Windows.Forms.ToolStrip.WndProc(Message& m)
в System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
R>>В таблице "Статистика сообщений пользователя" в столбце Форум не отображается собственно название форума. Не знаю, связано ли это именно с SQLite... но вроде бы с FB было нормально. ДА>Не знаю, но после того как я исправил, то что далее столбец форум заполнен, может наведенка?
Извеняюсь не туда посмотрел — это так и осталось. Причина в том что в некоторых случаях SQLite в запросе SELECT возвращает в названиях колонок вместе с квадратными скобками и соответственно BLToolkit при мапинге не находит нужных полей и в них остается пусто. Я конечно могу поправить запрос, но помоему надо что-то править на уровне BLToolkit-а, а иначе заманаешся запросы править.
R>>
Здравствуйте, serb, Вы писали:
S>Скачал и запустил янус в первый раз Создал базу с скллайт и получил ошибку
S>Rsdn.Janus.DBSchemaException: Ошибка на этапе реструктуризации базы: S>Error when prepared SqlDiff
Это из-за того, что SQLite не поддерживает
ATER TABLEADD CONSTRAINT blablabla
Это очень плохо, но не смертельно. Конструкции типа
Здравствуйте, serb, Вы писали:
S>Скачал и запустил янус в первый раз Создал базу с скллайт и получил ошибку
S>Rsdn.Janus.DBSchemaException: Ошибка на этапе реструктуризации базы: S>Error when prepared SqlDiff S> в Rsdn.Janus.DbsmManager.Restruct(IGenericServiceProvider serviceProvider) S> в Rsdn.Janus.Janus.Main()
S>Ревизия 20070911-1207-r746
Гляну вроде раньше работало (я же базу с нуля создовал)