Re[3]: RSDN@Home и SQLite
От: Дьяченко Александр Россия  
Дата: 31.08.07 17:50
Оценка: 70 (3)
Здравствуйте, rameel, Вы писали:

0rc>>Супер. Это по теме. Теперь вопрос. Кто-нибудь делал сравнительную характеристику, насколько быстрее медленее будет работать RSDN@Home с SQLLite по сравнению с MSSQL 2000?

R>ИМХО, сравнивать еще не с чем. По моему еще не все запросы отлажены до конца. Вот когда дойдет до рабочего состояния, тогда может попробую импортнуть данные в базу и сравнить характеристики.

Ну уже более менее работает и залито в SVN (731 ревизия) — можно проверять.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re: Новая версия залита в SVN (r731)
От: Дьяченко Александр Россия  
Дата: 31.08.07 17:50
Оценка: 6 (1)
Благодаря AndrewVK дорвался до SVN

Изменения:
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[4]: RSDN@Home и SQLite
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 02.09.07 19:15
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

Огромное спасибо!
Вроде бы очень шустро работает, хотя размер базы пока мелкий.

Замечание (пробовал в ревизии 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)

Re[5]: RSDN@Home и SQLite
От: Дьяченко Александр Россия  
Дата: 03.09.07 01:14
Оценка:
Здравствуйте, 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

Понятно, такое уже видел. Вечером буду дома поправлю.
... << RSDN@Home 1.2.0 alpha rev. 735>>
Re[6]: RSDN@Home и SQLite
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 03.09.07 13:28
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>Понятно, такое уже видел. Вечером буду дома поправлю.

Быть может вы также найдете время и вот эти мелочи исправить? Заранее благодарен.

  1. В таблице "Статистика сообщений пользователя" в столбце Форум не отображается собственно название форума. Не знаю, связано ли это именно с SQLite... но вроде бы с FB было нормально.

  2. После шальной попытки упаковать БД (командой меню Файл) в собственном профиле в пункте "Первое сообщение" теперь отображается сообщение "Не удается запустить приложение. Системная база данных отсут" следующего содержания:

    Ошибка:
    Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем.

    Описание:


    Версия приложения:
    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)


  3. Вместо отображения администрации форума получаем:

    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)


  4. Вместо отображения статей форума получаем:

    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)

Re[7]: RSDN@Home и SQLite
От: Дьяченко Александр Россия  
Дата: 03.09.07 14:51
Оценка: 17 (3)
Здравствуйте, rsn81, Вы писали:

ДА>>Понятно, такое уже видел. Вечером буду дома поправлю.

R>Быть может вы также найдете время и вот эти мелочи исправить? Заранее благодарен.

Вроде поправил r740 (это
Автор: rsn81
Дата: 02.09.07
тоже поправил)

R>
  1. В таблице "Статистика сообщений пользователя" в столбце Форум не отображается собственно название форума. Не знаю, связано ли это именно с SQLite... но вроде бы с FB было нормально.

    Не знаю, но после того как я исправил, то что далее столбец форум заполнен, может наведенка?

    R>
  2. После шальной попытки упаковать БД (командой меню Файл) в собственном профиле в пункте "Первое сообщение" теперь отображается сообщение "Не удается запустить приложение. Системная база данных отсут" следующего содержания:[q]Ошибка:
    R>Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем.

    Так лучше не делать (вот здесь — Compact Database
    Автор: Блудов Павел
    Дата: 03.09.07
    мысль хорошая высказана, может доделаем)

    R>
  3. Вместо отображения администрации форума получаем:

    Исправил.

    R>
  4. Вместо отображения статей форума получаем:

    Исправил.

    R>
... << RSDN@Home 1.2.0 alpha rev. 738>>
Re[8]: RSDN@Home и SQLite
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 03.09.07 19:13
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

Добавление темы в избранное приводит к:

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)

Спасибо!
Re[8]: RSDN@Home и SQLite
От: Дьяченко Александр Россия  
Дата: 03.09.07 23:31
Оценка:
R>>
  1. В таблице "Статистика сообщений пользователя" в столбце Форум не отображается собственно название форума. Не знаю, связано ли это именно с SQLite... но вроде бы с FB было нормально.
    ДА>Не знаю, но после того как я исправил, то что далее столбец форум заполнен, может наведенка?

    Извеняюсь не туда посмотрел — это так и осталось. Причина в том что в некоторых случаях SQLite в запросе SELECT возвращает в названиях колонок вместе с квадратными скобками и соответственно BLToolkit при мапинге не находит нужных полей и в них остается пусто. Я конечно могу поправить запрос, но помоему надо что-то править на уровне BLToolkit-а, а иначе заманаешся запросы править.

    R>>
... << RSDN@Home 1.2.0 alpha rev. 738>>
Re[9]: RSDN@Home и SQLite
От: Дьяченко Александр Россия  
Дата: 03.09.07 23:46
Оценка: 10 (1)
Здравствуйте, rsn81, Вы писали:

R>Добавление темы в избранное приводит к:


Поправил r743
... << RSDN@Home 1.2.0 alpha rev. 742>>
Re: Новая ревизия 745
От: Дьяченко Александр Россия  
Дата: 05.09.07 15:22
Оценка: 17 (3)
Прикручивание SQLite (продолжение): Адаптация запросов.
r745:
r743:
r739:
... << RSDN@Home 1.2.0 alpha rev. 745>>
Re: RSDN@Home и SQLite
От: serb Россия  
Дата: 16.09.07 18:30
Оценка: +2
Привет

Скачал и запустил янус в первый раз Создал базу с скллайт и получил ошибку

Rsdn.Janus.DBSchemaException: Ошибка на этапе реструктуризации базы:
Error when prepared SqlDiff
в Rsdn.Janus.DbsmManager.Restruct(IGenericServiceProvider serviceProvider)
в Rsdn.Janus.Janus.Main()

Ревизия 20070911-1207-r746
Бага
От: Блудов Павел Россия  
Дата: 17.09.07 07:31
Оценка:
Здравствуйте, serb, Вы писали:

S>Скачал и запустил янус в первый раз Создал базу с скллайт и получил ошибку


S>Rsdn.Janus.DBSchemaException: Ошибка на этапе реструктуризации базы:

S>Error when prepared SqlDiff

Это из-за того, что SQLite не поддерживает
ATER TABLE ADD CONSTRAINT blablabla

Это очень плохо, но не смертельно. Конструкции типа
CREATE TABLE DbVariable
( Key VARCHAR(250)
, Value VARCHAR(250)
, PRIMARY KEY (Key)
, CHECK(blabla)
)

он понимает. Т.е. нужно научить реструкторизатор генерировать таблицу с ограничениями за одну операцию.
... << RSDN@Home 1.2.0 alpha rev. 746>>
Re[2]: RSDN@Home и SQLite
От: Дьяченко Александр Россия  
Дата: 17.09.07 11:28
Оценка:
Здравствуйте, 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


Гляну вроде раньше работало (я же базу с нуля создовал)
... << RSDN@Home 1.2.0 alpha rev. 747>>
Re[3]: RSDN@Home и SQLite
От: Дьяченко Александр Россия  
Дата: 18.09.07 14:01
Оценка:
Вобщем у меня базу создает (3 раза пробывал), выкладывай ошибку полностью может что будет ясно.
... << RSDN@Home 1.2.0 alpha rev. 747>>
Кто успел тот и съел
От: Блудов Павел Россия  
Дата: 19.09.07 07:50
Оценка: :)
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>Вобщем у меня базу создает (3 раза пробывал), выкладывай ошибку полностью может что будет ясно.

Я уже поправил. бага была такая:
protected void DeleteDdlCommandsByFilter(string filter)
{
    DataView dwr = _ddlCmdTable.DefaultView;
    dwr.RowFilter = filter;
    for (int j = 0; j < dwr.Count; j++)
        dwr[j].Delete();
    _ddlCmdTable.AcceptChanges();
}

dwr.Count уменьшается на 1 с каждым вызовом dwr[j].Delete(). Правильно так
protected void DeleteDdlCommandsByFilter(string filter)
{
    DataView dwr = _ddlCmdTable.DefaultView;
    dwr.RowFilter = filter;
    while (dwr.Count > 0)
        dwr[0].Delete();
    _ddlCmdTable.AcceptChanges();
}
... << RSDN@Home 1.2.0 alpha rev. 746>>
Re: Кто успел тот и съел
От: Дьяченко Александр Россия  
Дата: 19.09.07 11:04
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>dwr.Count уменьшается на 1 с каждым вызовом dwr[j].Delete(). Правильно так

БП>
БП>protected void DeleteDdlCommandsByFilter(string filter)
БП>{
БП>    DataView dwr = _ddlCmdTable.DefaultView;
БП>    dwr.RowFilter = filter;
БП>    while (dwr.Count > 0)
БП>        dwr[0].Delete();
БП>    _ddlCmdTable.AcceptChanges();
БП>}
БП>


У меня так и было по месту вызова этого метода. После меня уже поменяли.
... << RSDN@Home 1.2.0 alpha rev. 749>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.