![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
WantToProg |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 13.4.2009 Репутация: нет Всего: нет |
Доброе время суток. Помогите пожалуйста перевести запросы SQL в язык Link.
Запросы следующие:
И что заменяет результат выполнения запроса:
PS: Очень надеюсь на вашу помощь. Сам к сожалению не могу справиться, уже день потратил, не работают запросы :( |
||||
|
|||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
1. Нельзя так "переводить".
2. В линке нету батч модификаций. 3. Если нужен "перевод" - то только хранимки. 4. Насчёт второй части. Смотрим пункт 2. С пунктом 3 - @@rowcount. 5. Про SQL-инъекции вы, конечн, не слышали? |
|||
|
||||
Выхухоль |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 9.10.2008 Где: Ташкент Репутация: нет Всего: 2 |
Вы щас своим ответом пытались помоч человеку или показать свою невъ**нность? как понять в линке нет батч модификаций??? даже мне прогеру с 4-хлетним опытов в .NET нифига эта враза в данном контексте не понятна хрень, хранимки следует использовать только при изменении данных, а тут и выборочный запрос имеется... какие инъекции, в LINQ???? вы когда последний раз видели чтобы кто то инекцию в линке провел? Для того чтобы получить анологию с вышеуказанными запросами следует в первую очередь создать Linq To SQL Classes.dbml слой данных, это спец Item который добавляеться в проект как и все остальные. При создании этого объекта к нему вы укажете подключение к базе, и на этот слой будете закидывать данные в виде таблиц вьюшек и хранимых процедур. после этого вы используете объект созданного вами Linq To SQL Classes класса, который в себе будет содержать весь слой данных который вы на него поместили. к примеру, все таблицы участвующие в описанном выми запросах уже есть в этом слое данных:
канечно я не дал полную исчерпывающую информацию, но зато четко ответил на поставленный вами вопрос, пробуйте, докапывайте, советую читать все таки литературы, а уже потом выполнять какие либ действия на практике Это сообщение отредактировал(а) Выхухоль - 11.6.2010, 14:11 |
|||
|
||||
Любитель |
|
||||||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
Во-первых, ещё раз. Я говорил о том, что нельзя переводить. Т. е. вот этому куску соответствует то, вот этому - то. Я не говорил о том, что нельзя решить аналогичные бизнес-задачи.
Ээ.. Набираем batch update linq, скажем, и смотрем кучу вопросов. Речь о том, чтобы одним запросом вставить, удалить или обновить много данных. В линке этого нельзя.
Ещё раз - пункт 1. Я говорил о том, чтобы предложить "ниверсальный алгоритм перевода". А вообще, "только при изменении" - это даж не смешно. Как вы собрались всякие иерархические запросы, window-функции и сложные агрегации делать?!
Ещё такой момент - очень неудачная идея миксить query и учеутышщт синтаксисы. Тем более так дико. |
||||||
|
|||||||
WantToProg |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 13.4.2009 Репутация: нет Всего: нет |
Любитель, к сожалению, я действительно не понял что вы имеете ввиду. Я не знаю, что такое батч-модификации и sql-инъекции. Обещаю, что поищу в интернете описание ;)
Выхухоль, Большое спасибо, вы меня направили в нужную сторону. Кроме того, нашел еще такую ссылку (прошу прощения, что раньше не внимательно искал) http://msdn.microsoft.com/ru-ru/library/bb882643(VS.90).aspx За выборку отдельное спасибо. Если остальные процедуры я могу заменить прямыми командами SQL, то с выборкой была проблема Остался вопрос с результатом выполнения запроса
ExecuteNonQuery() возвращает 1 или 0, что позволяет понять произошел update, delete или insert. Чем заменяют это в LinqToSQL? PS: А еще я походу вопрос поставил не корректно. Все запросы описанные в первом посте не надо было делать подряд. Мне в разных частях кода необходимо их делать ![]() Это сообщение отредактировал(а) WantToProg - 14.6.2010, 09:58 |
|||
|
||||
Ram1reS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 25.4.2008 Где: Москва Репутация: нет Всего: 5 |
Ловлей Exceptiona'a при DataContext.SaveChanges() --------------------
|
|||
|
||||
WantToProg |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 13.4.2009 Репутация: нет Всего: нет |
Вы имели ввиду SubmitChanges()? Так при Update исключения нет. Или я не внимательно смотрю? Пока что, я решил сделать таким образом. Не уверен, что он правильный. Создаю таблицу в базе с ключевым полем. Потом произвожу INSERT и в случае Exception, UPDATE. Это сообщение отредактировал(а) WantToProg - 15.6.2010, 07:36 |
|||
|
||||
Ram1reS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 25.4.2008 Где: Москва Репутация: нет Всего: 5 |
Да, SubmitChanges() конечно же =)
Смотрим тут
--------------------
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |