Выбор способа сохранения коллекции в БД.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

UdaffcheG
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 05.05.2012 (Сб) 21:55

Выбор способа сохранения коллекции в БД.

Сообщение UdaffcheG » 08.01.2014 (Ср) 1:40

Доброго всем времени!

Нормализую тексты из разных источников и собираю их в коллекцию:
Код: Выделить всё
'...обьявляю.......
    Public collectTexts As New Microsoft.VisualBasic.Collection()
    Public Class TextsElement
        Public TKey As String ' ключ
        Public TEntry As String ' текст
        Public TLen As String ' длина текста
    End Class

'...выбираю.......
While Not MyReader.EndOfData
   key += 1
   Dim inst As New TextsElement()
   Try
       currentRow = MyReader.ReadFields()
       inst.TKey = CStr(key)
       inst.TEntry = Trim(Trim(UCase(currentRow.GetValue(0))))
       inst.TLen = CStr(Len(currentRow.GetValue(0)))

'...заполняю коллекцию.......
      collectTexts.Add(inst, CStr(key))
   Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
        MsgBox("Line " & ex.Message & _
        "is not valid and will be skipped.")
   End Try

End While

'...ну и далее делаю что-то.......

В конце концов, сбрасываю содержимое коллекции в текстовый файл. В случае надобности - подгружаю обратно.
Все бы ничего, но данных стало много и напряжно с ними стало копошиться.
Надо бы БД заюзать. Локальную.
Вопрос - что лучше выбрать, кроме SQL-сервера?
чтобы:
- динамично создавать-удалять БД под разные нужды.
- гибко раскидывать данные по таблицам прямо из коллекции.
- не заморачиваться на форме с DataSet и прочими "сетами".

Спасибо. ))

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Выбор способа сохранения коллекции в БД.

Сообщение iGrok » 08.01.2014 (Ср) 17:20

UdaffcheG писал(а):Надо бы БД заюзать. Локальную.Вопрос - что лучше выбрать, кроме SQL-сервера?

А что, разве есть много вариантов? Адекватных локальных вообще всего две: SQL Server Compact / SQLite. Ну, Access ещё, конечно...
Если же под "локальной" подразумевается просто установка сервера бд на той же системе, то вообще любую: SQL Server Express, MySQL, постгресс, и т.п.

UdaffcheG писал(а):- гибко раскидывать данные по таблицам прямо из коллекции.

Впрочем, вот этого требования я совсем не понял, а под остальные два подходит любая субд.
label:
cli
jmp label

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 09.01.2014 (Чт) 12:57

MongoDB?

UdaffcheG
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 05.05.2012 (Сб) 21:55

Re: Выбор способа сохранения коллекции в БД.

Сообщение UdaffcheG » 10.01.2014 (Пт) 6:12

iGrok писал(а):
UdaffcheG писал(а):Надо бы БД заюзать. Локальную.Вопрос - что лучше выбрать, кроме SQL-сервера?

А что, разве есть много вариантов? Адекватных локальных вообще всего две: SQL Server Compact / SQLite. Ну, Access ещё, конечно...
Если же под "локальной" подразумевается просто установка сервера бд на той же системе, то вообще любую: SQL Server Express, MySQL, постгресс, и т.п.

UdaffcheG писал(а):- гибко раскидывать данные по таблицам прямо из коллекции.

Впрочем, вот этого требования я совсем не понял, а под остальные два подходит любая субд.

Да. Извините. Криво изложил суть проблемы.
Постараюсь проще сказать:
На VB-6 я делал таблицы DBF программно, из кода. С ними напрямую работал через Jet. Потом долго не занимался программированием на VB. (ABAP-4 затмил сознание ) :wink:
Теперь возникла необходимость сделать программу на VB. А тут .NET, - буксую.
По старой привычке, мечтаю программно лепить базу и работать с ней. Не завися от других движков.
Вобщем, мечтается, сделать так, чтобы программа работала на любой машине без установки лишних "приблуд".
Смотрел в сторону сериализации. Не понравилось. Возможно, от слабости знаний.
Для компактности самой программы - не хочется использовать и DataSet...
Вот. Как то так.
Спасибо. :oops:

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Выбор способа сохранения коллекции в БД.

Сообщение iGrok » 10.01.2014 (Пт) 10:33

UdaffcheG писал(а):без установки лишних "приблуд"

Ну, собственно:
iGrok писал(а):SQL Server Compact / SQLite

Насколько я помню, в обоих случаях базу можно "лепить" программно как хочешь, но вот конкретно с sql compact я не работал, так что могу ошибаться.
Лично я бы всё-таки выбрал SQLite, как более распространённый. Но лучше пощупать руками оба варианта самому.

UdaffcheG писал(а):Для компактности самой программы - не хочется использовать и DataSet

Дык он же наоборот для облегчения работы сделан. Так-то и без него всё можно делать.
label:
cli
jmp label

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 10.01.2014 (Пт) 16:19

Entity Framework + локальный файл с базой данных?

UdaffcheG
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 05.05.2012 (Сб) 21:55

Re: Выбор способа сохранения коллекции в БД.

Сообщение UdaffcheG » 11.01.2014 (Сб) 10:12

iGrok писал(а):
UdaffcheG писал(а):без установки лишних "приблуд"

Ну, собственно:
iGrok писал(а):SQL Server Compact / SQLite

Насколько я помню, в обоих случаях базу можно "лепить" программно как хочешь, но вот конкретно с sql compact я не работал, так что могу ошибаться.
Лично я бы всё-таки выбрал SQLite, как более распространённый. Но лучше пощупать руками оба варианта самому.

UdaffcheG писал(а):Для компактности самой программы - не хочется использовать и DataSet

Дык он же наоборот для облегчения работы сделан. Так-то и без него всё можно делать.

Щупаю sql compact 4.0
О результатах - доложу. )
Спасибо.

UdaffcheG
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 05.05.2012 (Сб) 21:55

Re: Выбор способа сохранения коллекции в БД.

Сообщение UdaffcheG » 12.01.2014 (Вс) 21:10

UdaffcheG писал(а):Щупаю sql compact 4.0
О результатах - доложу. )
Спасибо.

Докладываю:
Выбрал sql compact 4.0 - http://www.microsoft.com/ru-ru/download/confirmation.aspx?id=30709&useDLM=true
Неплохой функционал. Как раз то, что нужно для моей задачи.
Хорошая документация по sql compact 4.0 - http://www.microsoft.com/en-us/download/details.aspx?id=21880

Выбор сделан.
Всем большое спасибо! )))

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Re: Выбор способа сохранения коллекции в БД.

Сообщение Maitris » 22.03.2014 (Сб) 2:03

Попробуйте продукт ORM под названием XPO от компании DevExpress. Работает со всеми популярными БД, по-умолчанию использует Access, не требующий ничего дополнительно устанавливать. Сохранение в БД сводится в простому наследованию своего класса от XPObject и вызова его метода .Save(). Чтение и фильтрация тоже предельно прямолинейны.
----


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 13

    TopList