SqlCommandBuilder не совсем так строит команду...
От: corpse56  
Дата: 18.01.11 14:54
Оценка:
Здравствуйте!

сабж выдает такую команду:
UPDATE [ISSUED] SET [ID] = @p1



дело в том, что у меня иногда из-за этого вылетает, потому что требует имя базы. т.е. команда если б выглядела вот так:

UPDATE ReservedR..[ISSUED] SET [ID] = @p1



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

в подключении указан правильный Initial Catalog
Использую vs 2008 и ms sql 2005

спасибо.
Re: SqlCommandBuilder не совсем так строит команду...
От: rasp_file Украина  
Дата: 18.01.11 15:02
Оценка:
Здравствуйте, corpse56, Вы писали:

C>Здравствуйте!


C>сабж выдает такую команду:

C>
C>UPDATE [ISSUED] SET [ID] = @p1
C>



C>дело в том, что у меня иногда из-за этого вылетает, потому что требует имя базы. т.е. команда если б выглядела вот так:


C>
C>UPDATE ReservedR..[ISSUED] SET [ID] = @p1
C>



C>то никаких вопросов бы...

C>Скажите, что можно с этим сделать?
C>я кроме как вручную переписать все команды не вижу других способов...

C>в подключении указан правильный Initial Catalog

C>Использую vs 2008 и ms sql 2005
SqlCommandBuilder.QuotePrefix

?
... << RSDN@Home 1.2.0 alpha 4 rev. 1481>>
Re[2]: SqlCommandBuilder не совсем так строит команду...
От: rasp_file Украина  
Дата: 18.01.11 15:05
Оценка:
Здравствуйте, rasp_file, Вы писали:


_>SqlCommandBuilder.QuotePrefix

_>[/c#]

Нет, не то.
... << RSDN@Home 1.2.0 alpha 4 rev. 1481>>
Re: SqlCommandBuilder не совсем так строит команду...
От: _FRED_ Черногория
Дата: 19.01.11 06:08
Оценка: 2 (1)
Здравствуйте, corpse56, Вы писали:

C>сабж выдает такую команду:

C>UPDATE [ISSUED] SET [ID] = @p1

C>дело в том, что у меня иногда из-за этого вылетает, потому что требует имя базы. т.е. команда если б выглядела вот так:
C>UPDATE ReservedR..[ISSUED] SET [ID] = @p1

C>то никаких вопросов бы...
C>Скажите, что можно с этим сделать?

Странно, зачем это может понадобиться (почему вылетает )

Отладив DbCommandBuilder::BuildInformation (четвёртый фреймворк) можно заметить, что для того, что бы имя базы данных (каталога) было бы указано в получающихся командах, требуется в SelectCommand адаптера указать и имя каталога и имя схемы (пустая не прокатит):

  var connectionString = new SqlConnectionStringBuilder {
    DataSource = ".",
    InitialCatalog = "Northwind",
    IntegratedSecurity = true,
  };
  using(var connection = new SqlConnection(connectionString.ToString()))
  using(var select = new SqlCommand("SELECT * FROM [Northwind].[dbo].[Orders];", connection))
  using(var adapter = new SqlDataAdapter(select))
  using(var builder = new SqlCommandBuilder(adapter))
  using(var insert = builder.GetInsertCommand())
  //using (var update = builder.GetUpdateCommand())
  //using (var delete = builder.GetDeleteCommand()) {
    Console.WriteLine(insert.CommandText);
  }//using

INSERT INTO [Northwind].[dbo].[Orders] ([CustomerID], [EmployeeID], …
Help will always be given at Hogwarts to those who ask for it.
Re[2]: SqlCommandBuilder не совсем так строит команду...
От: Nikolay_P_I  
Дата: 19.01.11 06:41
Оценка:
_FR>Странно, зачем это может понадобиться (почему вылетает )

Почему у автора вылетает — не знаю, а вот явное указание всяких [dbo] советует оптимизатор от SQL-сервера.
Re[3]: SqlCommandBuilder не совсем так строит команду...
От: _FRED_ Черногория
Дата: 19.01.11 06:58
Оценка:
Здравствуйте, Nikolay_P_I, Вы писали:

_FR>>Странно, зачем это может понадобиться (почему вылетает )


N_P>Почему у автора вылетает — не знаю, а вот явное указание всяких [dbo] советует оптимизатор от SQL-сервера.


А где именно (пруфлинк) советует?
Help will always be given at Hogwarts to those who ask for it.
Re[2]: SqlCommandBuilder не совсем так строит команду...
От: corpse56  
Дата: 19.01.11 08:33
Оценка:
Здравствуйте, _FRED_, Вы писали:


_FR>Странно, зачем это может понадобиться (почему вылетает )


вылетает иногда! один раз вылетает, один раз нет... я не могу догадаться что именно происходит в промежутках. единственная мысль — это что по этому же соединению иногда запрашиваются данные из разных баз.

если я пойму что конкретно — обязательно отпишусь.


_FR>Отладив DbCommandBuilder::BuildInformation (четвёртый фреймворк) можно заметить, что для того, что бы имя базы данных (каталога) было бы указано в получающихся командах, требуется в SelectCommand адаптера указать и имя каталога и имя схемы (пустая не прокатит):


спасибо! это работает!
Re[4]: SqlCommandBuilder не совсем так строит команду...
От: Nikolay_P_I  
Дата: 19.01.11 09:22
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>>>Странно, зачем это может понадобиться (почему вылетает )

N_P>>Почему у автора вылетает — не знаю, а вот явное указание всяких [dbo] советует оптимизатор от SQL-сервера.
_FR>А где именно (пруфлинк) советует?

Пруфлинк — я

А если подробнее — как-то столкнулись с ситуацией, когда Tuning Advisor не понимал запись вида [Table], но понимал запись вида [dbo].[Table] или понимал, но советовал указывать [dbo] явно — не помню. Мы тогда просто стали полную строку формировать, да и забыли про то. MS SQL 2005.
Re[3]: SqlCommandBuilder не совсем так строит команду...
От: _FRED_ Черногория
Дата: 19.01.11 10:17
Оценка:
Здравствуйте, corpse56, Вы писали:

_FR>>Странно, зачем это может понадобиться (почему вылетает )

C>вылетает иногда! один раз вылетает, один раз нет... я не могу догадаться что именно происходит в промежутках. единственная мысль — это что по этому же соединению иногда запрашиваются данные из разных баз.

Выделенное как раз и объясняет. Вопрос в том, действительно ли нужно "по этому же соединению" запрашивать "данные из разных баз"
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.