Spec-Zone .ru
спецификации, руководства, описания, API

21.2.5.3. Используя MySqlCommand

A MySqlCommand имеет CommandText и CommandType свойства связались с этим. CommandText будет обработан по-другому в зависимости от установки CommandType. CommandType может быть один из:

  1. Текст - команда кода на SQL (значение по умолчанию)

  2. StoredProcedure - имя Хранимой процедуры

  3. TableDirect - имя таблицы (новый в Соединителе/Сети 6.2)

Значение по умолчанию CommandType, Text, используется для того, чтобы выполнить запросы и другие команды SQL. Некоторый пример этого может быть найден в Разделе следующего раздела 21.2.4.1.2, "Объект MySqlCommand".

Если CommandType устанавливается в StoredProcedure, набор CommandText к имени Хранимой процедуры к доступу.

Если CommandType устанавливается в TableDirect, все строки и столбцы именованной таблицы будут возвращены, когда Вы вызовете один из методов Execute. В действительности эта команда выполняет a SELECT * на определенной таблице. CommandText свойство устанавливается в имя таблицы запросить. Это иллюстрируется следующим фрагментом кода:

...MySqlCommand cmd = new MySqlCommand();cmd.CommandText = "mytable";cmd.Connection = someConnection;cmd.CommandType = CommandType.TableDirect;MySqlDataReader reader = cmd.ExecuteReader();while (reader.Read()){   Console.WriteLn(reader[0], reader[1]...);}...

Примеры использования CommandType StoredProcedure могут быть найдены в Разделе раздела 21.2.5.9, "Получая доступ к Хранимым процедурам с Соединителем/Сетью".

Командам можно было связать тайм-аут с ними. Это полезно, поскольку Вы не можете хотеть ситуацию, была команда, приводит чрезмерное количество времени в рабочее состояние. Тайм-аут может быть установлен, используя CommandTimeout свойство. Следующий фрагмент кода устанавливает тайм-аут одной минуты:

MySqlCommand cmd = new MySqlCommand();cmd.CommandTimeout = 60;

Значение по умолчанию составляет 30 секунд. Избегите значения 0, который указывает, что неопределенное ожидает. Чтобы изменить тайм-аут команды значения по умолчанию, используйте опцию строки подключения Default Command Timeout.

До MySQL, Connector/Net 6.2, MySqlCommand.CommandTimeout включенное пользовательское время обработки, которое является временем обработки, не связанным с прямым использованием соединителя. Тайм-аут был реализован через Таймер.NET, который инициировал после CommandTimeout секунды. Этот таймер, использованный поток.

6.2 представленных тайм-аутов MySQL Connector/Net, которые являются выровненные того, как Microsoft обрабатывает SqlCommand.CommandTimeout. Это свойство является совокупным тайм-аутом для всех сетевых чтений и записей во время выполнения команды или обработки результатов. Тайм-аут может все еще произойти в MySqlReader.Read метод после первой строки возвращается, и не включает пользовательское время обработки, только операции IO. 6.2 использования реализации базовое потоковое средство тайм-аута, так более эффективно в этом, оно не требует дополнительного потока таймера, как имел место с предыдущей реализацией.

Более подробная информация об этом может быть найдена в соответствующей документации Microsoft.