| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > как выполнить SQL запрос |
| Автор: Ch0bits 16.6.2005, 21:40 |
| Как выполнить над базой данных запрос содержищийся в массиве строк? Тип базы не имеет значения. |
| Автор: Domestic Cat 16.6.2005, 21:48 | ||
В чем проблема-то? Ну для каждой строки делаешь что-нибудь типа
|
| Автор: Ch0bits 16.6.2005, 22:27 |
| Не... это я наверное не точно вопрос сформулировал. Мне ведь не нужно выполнять последовательно каждую строку, мне нужно выполнить все их вместе. В массиве содержится многострочная программа на SQL. |
| Автор: mr.DUDA 17.6.2005, 07:41 |
| Обычно такая штука, как многострочный запрос, оформляется в виде хранимой процедуры и вызывается по имени. |
| Автор: Domestic Cat 17.6.2005, 07:45 |
| Вроде batch вводится в ADO.NET 2.0 или я ошибаюсь? |
| Автор: arilou 17.6.2005, 13:06 | ||
Если в запросе у тебя только CRUD операции, то можешь спокойно выполнять его, разделив ";" разные запросы (работает в SQL Server, в Access'e - нет). Если там у тебя DDL, то придется разбивать его на пачки, и после каждой пачки вставлять вызов "GO", иначе если ты в новые таблицы начнешь добавлять, будут ошибки о том, что твоих изменений еще нет. Для SQL Server можно пользоваться биб-кой SQL-DMO. http://forum.vingrad.ru/index.php?showtopic=55624 я клал простой класс, инкапуслирующий работу с SQL-DMO. |
| Автор: Дрон 17.6.2005, 13:40 | ||
Не понял проблемы? Приведи пример такого запроса. |
| Автор: Ch0bits 18.6.2005, 00:14 |
| Тут такая злая тема: Этот массив строк есть загруженный внешний текстовый файл с запросом. Он генерируется программой стороннего разработчика и часто изменяется. Поэтому пример привести не могу, да и не имеет он тут значения. Если бы я заранее знал текст SQL, то просто засунул бы его в базу и вызывал из проги как процедуру. Вот такие прироги с котятами... |
| Автор: Domestic Cat 18.6.2005, 03:17 | ||
Ну я думаю так: разделяешь запросы точкой с запятой, выполняешь executeReader, и для каждого запроса, возвращаещуего че-нибудь перебираешь результаты. К примеру
|
| Автор: Ch0bits 18.6.2005, 21:17 |
| Навёл меня на правильный путь. После кое-каких добавок-поправок работает отлично! RESPECT! |