Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Odbc MySQL, блокировка выполнения параллельных запро 
V
    Опции темы
MAK
  Дата 14.6.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.6.2006
Где: Москва

Репутация: нет
Всего: нет



Столкнулся с такой ситуацией:
есть класс, реализующий работу с бд. необходимо сделать две выборки подрят, т.е. сначала запускаем процедуру выборки одних данных, затем других.

К сожалению, столкнулся с ситуацией, что эти запросы выполняются одновременно, соответственно результат не корректрый.  smile 
Как ставить запросы "в очередь" либо просто запретить выполнение запроса, если другой запущен?  smile  
PM MAIL   Вверх
arilou
Дата 15.6.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 4
Всего: 61



MAK, во-первых, есть managed provider для MySql, называется MySql Connector .NET (на сайте MySql).
А во-вторых, smile не совсем понятно, как это "одновременно". Код в студию  smile  


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
MAK
Дата 15.6.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.6.2006
Где: Москва

Репутация: нет
Всего: нет



Вроде разобрался... Надо было использовать транзакцию и настроить запрет использования параллельных запросов...  smile 
А код таков (абстрактно):
Код

...
private void cbo_SelectedIndexChanged(...)
{
    ...
    GetValuesFromTable1();
    GetValuesFromTable2();
    ...
}
...

private void GetValuesFromTable1()
{
    sql.Select("id, title", "table1");
    
    while (sql.Read())
    {
        arr = sql.FetchArray();
    }
    
    sql.Free();
}

private void GetValuesFromTable2()
{
    sql.Select("id, cid, date", "table2");
    
    while (sql.Read())
    {
        arr = sql.FetchArray();
    }
    
    sql.Free();
}
....


Так вот, "одновременно" - это когда на 17 строке извлекаются данные, поторые отновятся ко 2му запросу (т.е. получается, что как-будто вместо 13 строки стоит 25)  smile  
PM MAIL   Вверх
arilou
Дата 15.6.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 4
Всего: 61



Цитата(MAK @  15.6.2006,  11:41 Найти цитируемый пост)
sql

В любом случае, вместо ODBC будет намного лучше и быстрее использовать MySql Connector .NET  


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
MAK
Дата 15.6.2006, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.6.2006
Где: Москва

Репутация: нет
Всего: нет



Если не считать, что с кодировкой проблемы...  smile 
Да и как-то не заменил я особого быстродействия  smile  
PM MAIL   Вверх
arilou
Дата 16.6.2006, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 4
Всего: 61



Цитата(MAK @  15.6.2006,  18:09 Найти цитируемый пост)
Да и как-то не заменил я особого быстродействия  

Каюсь, это было голословное устверждение. Наверное, офицальный провайдер внутри все равно работает через ODBC. Можно попробовать других провайдеров (правда, не знаю, есть ли другие бесплатные), которые используют нативный интерфейс.

http://www.google.com/search?hl=en&lr=....NET%20Provider 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
MAK
Дата 16.6.2006, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 10.6.2006
Где: Москва

Репутация: нет
Всего: нет



Да, использование "натива" было бы здорово  smile 
(для с++ использую - очень доволен  smile ) 
PM MAIL   Вверх
ZAK
Дата 3.6.2010, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.7.2007

Репутация: нет
Всего: нет



Э-э-э... Прошу прощения... Объясните, пожалуйста, откуда возьмётся параллельность?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.