Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не работает запрос к табличке sql compact / 20 сообщений из 20, страница 1 из 1
29.03.2013, 11:57
    #38203889
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
VS 2012, FW 3.5
Добавил в проект базу sql compact (BanHammer.sdf), в нее табличку (BanList: IP varchar(15) pk, Expires datetime), натянул на нее entity data model, напейсал проц и дурку:

Код: vbnet
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.
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        If DateDiff(DateInterval.Second, mLastTick, Now) >= TICK_PERIOD Then
            Try
                ListBox1.Items.Clear()
                Using db As New BanHammer
                    Dim bl As BanList, IPs As New List(Of String), log As EventLog = New EventLog("Security")
                    For Each le As Object In (From v In log.Entries).ToList
                        ' Where v.TimeGenerated > DateAdd(DateInterval.Minute, -WOODPECKING_MINUTES, Now) 
                        ' And v.EntryType = EventLogEntryType.FailureAudit).ToList

                        Dim m As Match = Regex.Match(le.Message, "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}")
                        If m.Success Then IPs.Add(m.Groups(0).Value)
                    Next
                    For Each obj As Object In (From ip In IPs Group By ip Into Qty = Count() Select ip, Qty Where Qty >= WOODPECKER_FACTOR).ToList
                        Dim ip As String = obj.ip
                        Dim qty As Integer = (From v In db.BanList Where v.IP = ip).Count

                        ListBox1.Items.Add(ip & " " & qty)
                        If qty = 0 Then
                            bl = New BanList
                            bl.IP = obj.IP
                            bl.Expires = DateAdd(DateInterval.Day, BAN_DAYS, Now)
                            db.Attach(bl)
                        End If
                    Next
                    For Each bl In (From v In db.BanList Where v.Expires < Now).ToList()
                        db.DeleteObject(bl)
                    Next
                    db.SaveChanges()
                End Using
            Catch ex As Exception
                Dim log As EventLog = New EventLog("Application")
                log.WriteEntry("BanHammer error: " & ex.Message, EventLogEntryType.Error)
            End Try
            mLastTick = Now
        End If
    End Sub

Таймер срабатывает, исполнение доходит до указанной строки и вылетает неизвестно куда без ошибки и каких-либо сообщений.
Таймер срабатывает второй раз, ситуация повторяется.
Больше таймер не срабатывает, форма висит, единственный вариант действий — остановка.

В чем проблема?
...
Рейтинг: 0 / 0
29.03.2013, 12:28
    #38203965
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
Вот сам проект.
...
Рейтинг: 0 / 0
10.04.2013, 15:34
    #38220538
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
Открыл проект в VS12

Код: vbnet
1.
2.
3.
4.
5.
 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Using db As New BanHammer
            Dim all = db.BanList.ToList()
        End Using
    End Sub



...Указанная схема недопустима. Ошибки:
BanHammer.ssdl(2,98) : ошибка 0004: Could not load System.Data.SqlServerCe.Entity.dll. Reinstall SQL Server Compact.
...
Рейтинг: 0 / 0
10.04.2013, 15:40
    #38220561
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
После того, как

1. Сделал апдейт
https://nuget.org/packages/EntityFramework.SqlServerCompact/4.3.4 PM> Install-Package EntityFramework.SqlServerCompact -Version 4.3.4
2. Грохнул таблицу в контексте и пересоздал заново
3. Сменил FW на 4.5

Всё заработало.
...
Рейтинг: 0 / 0
10.04.2013, 15:59
    #38220605
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
МСУ...Указанная схема недопустима. Ошибки:
BanHammer.ssdl(2,98) : ошибка 0004: Could not load System.Data.SqlServerCe.Entity.dll. Reinstall SQL Server Compact.Что это за файл? У себя такого не нашел. Не нашел вообще ничего похожего даже поиском по всему содержимому файлов проекта.

МСУ1. Сделал апдейтПопробую.
МСУ3. Сменил FW на 4.5Фишка была сделать на 3.5. Собирался ставить банхаммер на несколько серверов, на которых 4.5 отродясь не было, и накатывать его только ради этого не хочется.
...
Рейтинг: 0 / 0
10.04.2013, 16:11
    #38220632
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
AntonariyЧто это за файл? У себя такого не нашел. Не нашел вообще ничего похожего даже поиском по всему содержимому файлов проекта.
Ну ты даешь, это ядро компакта. Его нужно обновить.

AntonariyФишка была сделать на 3.5.
Не понимаю сути "фишки".

AntonariyСобирался ставить банхаммер на несколько серверов, на которых 4.5 отродясь не было, и накатывать его только ради этого не хочется.
4.5 не обязателен. Ты хоть документацию иногда читай: http://www.microsoft.com/ru-ru/download/details.aspx?id=17876
Компьютер для разработки.NET Framework 3.5 с пакетом обновления 1 (SP1) или .NET Framework 4 для разработки управляемых приложений.
...
Рейтинг: 0 / 0
10.04.2013, 17:11
    #38220771
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
МСУНу ты даешь, это ядро компакта. Его нужно обновить.До сих пор не работал с компактом. А ошибка как проявилась? Я нигде ее текст не видел.
МСУ4.5 не обязателен. Ты хоть документацию иногда читай:Я знаю, что компакту он не обязателен, а программулине? В FW 3.5 даже EF отличается от 4.5. Разве программа, заточенная под 4.5, запустится на 3.5?

авторПопробуюПопробовал.
PM> Install-Package EntityFramework.SqlServerCompact -Version 4.3.4

Идет попытка разрешить зависимость "SqlServerCompact (≥ 4.0)".
Идет попытка разрешить зависимость "Microsoft.SqlServer.Compact (≥ 4.0.8854.1)".
Идет попытка разрешить зависимость "EntityFramework (≥ 4.3)".
Вы загружаете Microsoft.SqlServer.Compact из Microsoft, лицензионное соглашение доступно по адресу http://www.microsoft.com/web/webpi/eula/SQLCE_SP1_EULA_ENU.rtf. Проверьте пакет на наличие дополнительных зависимостей, для которых может потребоваться собственная лицензия. Ваше использование пакета и зависимостей подтверждает ваше согласие с условиями соответствующих лицензий. Если вы не согласны с условиями лицензии, удалите соответствующие компоненты со своего устройства.
"Microsoft.SqlServer.Compact 4.0.8876.1" успешно установлен.
"SqlServerCompact 4.0.8854.1" успешно установлен.
Вы загружаете EntityFramework.SqlServerCompact из Microsoft, лицензионное соглашение доступно по адресу http://go.microsoft.com/fwlink/?LinkId=243111. Проверьте пакет на наличие дополнительных зависимостей, для которых может потребоваться собственная лицензия. Ваше использование пакета и зависимостей подтверждает ваше согласие с условиями соответствующих лицензий. Если вы не согласны с условиями лицензии, удалите соответствующие компоненты со своего устройства.
"EntityFramework.SqlServerCompact 4.3.4" успешно установлен.
"Microsoft.SqlServer.Compact 4.0.8876.1" успешно добавлена в BHTest.
Некоторые из импортированных имен команд содержат неутвержденные глаголы, что может усложнить их поиск. Используйте параметр Verbose, чтобы получить дополнительные сведения, или введите Get-Verb, чтобы просмотреть список утвержденных глаголов.
d:\Users\Антон.MICROSOFT-PC\Desktop\BanHammer\BHTest\BHTest.sln d:\Users\Антон.MICROSOFT-PC\Desktop\BanHammer\BHTest\packages\Microsoft.SqlServer.Compact.4.0.8876.1
"SqlServerCompact 4.0.8854.1" успешно добавлена в BHTest.
"EntityFramework.SqlServerCompact 4.3.4" успешно добавлена в BHTest.
Исключение при вызове "Invoke" с "2" аргументами: "Невозможно загрузить файл или сборку "file:///d:\Users\Антон.MICROSOFT-PC\Desktop\BanHammer\BHTest\packages\EntityFramework.SqlServerCompact.4.3.4\tools\EntityFramework.PowerShell.dll" или один из зависимых от ни
х компонентов. Невозможно проверить подпись строгого имени. Возможно, сборка была изменена или построена с отложенной подписью, но не полностью подписана правильным закрытым ключом. (Исключение из HRESULT: 0x80131045)"
D:\Users\Антон.MICROSOFT-PC\Desktop\BanHammer\BHTest\packages\EntityFramework.SqlServerCompact.4.3.4\tools\install.ps1:29 знак:57
+ [SqlCompactConnectionFactoryConfiguratorInvoker]::Invoke <<<< ((Join-Path $toolsPath "EntityFramework.PowerShell.dll"), $project)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Все осталось по-старому :(

Какой еще локальный источник данных можно накликать так же быстро как sql compact? Ничего кроме таблички ip-дата в нем не будет.
...
Рейтинг: 0 / 0
10.04.2013, 17:26
    #38220806
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
AntonariyДо сих пор не работал с компактом. А ошибка как проявилась? Я нигде ее текст не видел.
Ты не внимателен. VS12.

AntonariyЯ знаю, что компакту он не обязателен, а программулине? В FW 3.5 даже EF отличается от 4.5. Разве программа, заточенная под 4.5, запустится на 3.5?
Ставь 4 или 4.5 и не ипи мозг.

AntonariyВсе осталось по-старому :(
Какой еще локальный источник данных можно накликать так же быстро как sql compact? Ничего кроме таблички ip-дата в нем не будет.
Разбирайся. У меня на VS12 всё работает.
...
Рейтинг: 0 / 0
10.04.2013, 17:59
    #38220870
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
МСУТы не внимателен. VS12.Куда смотреть и в какой момент? Во время исполнения в окно вывода ничего не падало, во время генерации модели вроде тоже. VS тоже 12.
МСУСтавь 4 или 4.5 и не ипи мозг.Исключено.
МСУРазбирайся. У меня на VS12 всё работает.Не буду. Я ставил себе задачу написать сервис максимально быстро и с ограничением по фреймворку, поэтому выбор пал на ef+compact. Сам по себе компакт мне не вперся, его капризы мне не интересны, и раз он не взлетел без очевидной и быстро устранимой причины (в рамках заданных условий, смена FW не канает), значит отправляется фтопку дожидаться проекта на 4.5. А табличку на аксессе в крайнем случае набросаю.

Спасибо за помощь, вопросов не осталось.
...
Рейтинг: 0 / 0
11.04.2013, 09:39
    #38221275
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
AntonariyКуда смотреть и в какой момент? Во время исполнения в окно вывода ничего не падало, во время генерации модели вроде тоже. VS тоже 12.
Ошибка начала проявлять себя после апдейта компакта, но при FW 3.5

AntonariyМСУСтавь 4 или 4.5 и не ипи мозг.Исключено.
Причину боязни данных фреймворков можешь огласить?

AntonariyЯ ставил себе задачу написать сервис максимально быстро и с ограничением по фреймворку
См. вопрос выше. Не вижу проблем обновиться и использовать на полную катушку замечательный 4-ый компакт.

AntonariyА табличку на аксессе в крайнем случае набросаю.
Давай уж на DBF, чего мелочиться.

AntonariyСпасибо за помощь, вопросов не осталось.
Ок, всегда рад помочь.
...
Рейтинг: 0 / 0
11.04.2013, 10:28
    #38221351
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
МСУПричину боязни данных фреймворков можешь огласить?
Не вижу проблем обновиться и использовать на полную катушку замечательный 4-ый компакт.Нет проблем. Нет боязни. Нет желания ставить фреймворк. Более того, лишь ради решения этой крохотной задачи я не стану его ставить принципиально. Этот код может работать на 3.5, и он будет это делать. Таково мое желание. Это данность и она не нуждается в причинах. Не принципиален тут как раз компакт с его аллергией на EF 3.5, мне нужна всего одна табличка всего с двумя полями, и мне по барабану как и где она хранится. Я просто хотел не лезть за ней за пределы студии, и потому выбрал компакт как самый очевидный и скоростной в реализации вариант.

МСУДавай уж на DBF, чего мелочиться.Если есть менее очевидный, но такой же простой способ создать и подключить к EF альтернативный источник данных, я с удовольствием не буду ставить аксесс.
...
Рейтинг: 0 / 0
11.04.2013, 11:06
    #38221428
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
Antonariy, так вообще за чем ради микротулы было использовать EF?
...
Рейтинг: 0 / 0
11.04.2013, 11:35
    #38221483
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
AntonariyНет желания ставить фреймворк.
Ну какой-то странный аргумент, не находишь? Значит, новомодный Microsoft SQL Server Compact 4.0 хочется юзать, а нет желания ставить фреймворк.

AntonariyЭтот код может работать на 3.5, и он будет это делать. Таково мое желание. Это данность и она не нуждается в причинах.
Наижесточайшие аргументы, что тут сказать.

AntonariyЕсли есть менее очевидный, но такой же простой способ создать и подключить к EF альтернативный источник данных, я с удовольствием не буду ставить аксесс.
Акцесс в качестве embedded database - унылое зло. Возьми, хотя бы это:

http://www.microsoft.com/ru-ru/download/details.aspx?id=5783 Компьютер разработки
• 2–3 МБ свободного места на жестком диске. Также необходимо 2–3 МБ для временных файлов установки.
• Visual Studio 2010 и Visual Studio 2008 с пакетом обновления 1 (SP1) для поддержки конструктора Visual Studio для разработки приложений для настольных компьютеров Windows. Для разработки приложений для мобильных устройств Windows используйте Visual Studio 2008 с пакетом обновления 1 (SP1).
• Visual Studio 2005 с пакетом обновления 1 (SP1) поддерживается для сценариев работы с кодом для настольных компьютеров и мобильных устройств Windows.
• .NET Framework 2.0, 3.0, 3.5 или 4 для разработки управляемых приложений.
...
Рейтинг: 0 / 0
11.04.2013, 11:59
    #38221534
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
buserAntonariy, так вообще за чем ради микротулы было использовать EF?Из-за скорости и прозрачности разработки. У датасетов шизанутая объектная модель, к которой еще привыкать надо. А от ADODB отвыкать уже пора. Как раз с помощью таких микропроектов отвыкать и лучше всего.

МСУНу какой-то странный аргумент, не находишь? Значит, новомодный Microsoft SQL Server Compact 4.0 хочется юзать, а нет желания ставить фреймворк.Я нахожу, что ты скоропалителен в выводах. См. скриншот. Кстати говоря, даже в проектах на FW 4.5 предлагается создать компакт-базу версии именно 3.5, хотя четвертый компакт тоже установлен.
...
Рейтинг: 0 / 0
11.04.2013, 12:10
    #38221567
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
Antonariy, выбрось русскую студию, 100 раз уже перетирали - это потенциальное зло.

P.S. Глянь рецептик , должен навести на мысли.
...
Рейтинг: 0 / 0
11.04.2013, 12:18
    #38221582
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
AntonariybuserAntonariy, так вообще за чем ради микротулы было использовать EF?Из-за скорости и прозрачности разработки. У датасетов шизанутая объектная модель, к которой еще привыкать надо. А от ADODB отвыкать уже пора. Как раз с помощью таких микропроектов отвыкать и лучше всего.
+1, умные вещи пишешь
...
Рейтинг: 0 / 0
11.04.2013, 13:15
    #38221701
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
МСУAntonariy, выбрось русскую студию, 100 раз уже перетирали - это потенциальное зло.

P.S. Глянь рецептик , должен навести на мысли.Копипаст не вылечил, глубоко копать нет времени. У меня есть комп без студии, дам на досуге связке из компакта и ef 3.5 последний шанс в английской инкарнации :)
...
Рейтинг: 0 / 0
11.04.2013, 13:20
    #38221715
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
Antonariyдам на досуге связке из компакта и ef 3.5 последний шанс в английской инкарнации :)
Вот с тобой сложно, а. Приходится убеждать, уговаривать, умолять даже...
...
Рейтинг: 0 / 0
11.04.2013, 18:34
    #38222553
С0ВЕСТЬ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
не топик, а анекдот

Antonariy, попробуй свою ошибку на другой машине проверить, а еще лучше на чистоустановленной!
...
Рейтинг: 0 / 0
22.04.2013, 19:06
    #38235587
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает запрос к табличке sql compact
AntonariyУ меня есть комп без студии, дам на досуге связке из компакта и ef 3.5 последний шанс в английской инкарнации :)Шанс был дан, проект не заработал.
AntonariyА табличку на аксессе в крайнем случае набросаю.Акс не канает, EF из коробки поддерживает только MSSQL и компакт, а под акс лишь какие-то самодельные провайдеры, не заслуживающие доверия.

Придется проект на ADODB переводить.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не работает запрос к табличке sql compact / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]