Re[5]: SQL & SingleTone
От: nikov США http://www.linkedin.com/in/nikov
Дата: 21.09.06 12:01
Оценка: +1
Здравствуйте, ZaKi, Вы писали:

ZK>Поскольку я пишу удаленный сервер, работающий с БД , и коннектов будет ОЧЕНЬ много то это ты часть — котрая сыкономит ресурсы.

ZK>поскольку при проведении нагрузочных тестов сервер падает от нагрузки ... DotTrace показал что на Connect disconnect тратится достаточно много времени, притом и сам MySQL подвисает при каждом коннекте больше, чем при одном висящем коннекте. У него каждый раз генерится какие-то там потоки, которые выгружаются с задержкой при дисконнекте.
ZK>Короче Singletone — то что надо! )))

См. Connection pooling
Re[5]: SQL & SingleTone
От: Lloyd Россия  
Дата: 21.09.06 12:36
Оценка: +1
Здравствуйте, ZaKi, Вы писали:

ZK>Поскольку я пишу удаленный сервер, работающий с БД , и коннектов будет ОЧЕНЬ много то это ты часть — котрая сыкономит ресурсы.

ZK>поскольку при проведении нагрузочных тестов сервер падает от нагрузки ... DotTrace показал что на Connect disconnect тратится достаточно много времени, притом и сам MySQL подвисает при каждом коннекте больше, чем при одном висящем коннекте. У него каждый раз генерится какие-то там потоки, которые выгружаются с задержкой при дисконнекте.
ZK>Короче Singletone — то что надо! )))

Проверь, не поддерживает ли твой провайдер connection pooling.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
SQL & SingleTone
От: ZaKi Россия  
Дата: 21.09.06 10:31
Оценка:
Всем привет. возникла проблемма при реализации паттерна SingleTone
Метод CommandSql должен выполнять SQL запросы и подключаться к MySQL только 1 раз, для запросов, невозвращающих данные (INSERT UPDATE DELETE & etc) все работает нормально, но при SELECTe вылетает на dbAdapt.Fill(dbLtSet);

        private int (string query, string command) 
        {
                dbLtSet.Tables.Clear();
                try 
                {
                    if(!_connected)
                    {
                    DBconnect();
                    }
                    
                    dbCommand.CommandText=query;
                    dbCommand.ExecuteReader();    
                    
                    //DBdisconnect();  //Если тут производить отключение от сервера - все работает.
                    if (command == "select") 
                    {
                        dbAdapt.SelectCommand = dbCommand;
                        dbAdapt.Fill(dbLtSet);//Вылетает на этой строке и говорит что-то вроде "необходимо отключение от сервера"
                    }
                    return 1;
                }
                catch (Exception ex) 
                {
                    MessageBox.Show(ex.Message,"Ошибка!");
                    return -1;
                }
                finally 
                {
                    dbCon.Close();
                }
        }

Как обойти такую засаду ??
(MySQl 5.0, MyODBCDriver 3.51, ODBC подключение к БД)
Просто Не хотелось возиться с CSConnector от MySQL. как никак чужой код.
C++Builder6, C#.NET
Re: SQL & SingleTone
От: Nasreddin  
Дата: 21.09.06 10:54
Оценка:
ZK>Как обойти такую засаду ??
ZK>(MySQl 5.0, MyODBCDriver 3.51, ODBC подключение к БД)
ZK>Просто Не хотелось возиться с CSConnector от MySQL. как никак чужой код.

Это ты получаешь предупреждение о том, что соединение нельзя использовать повторно — нельзя читать одновременно набор и работать с ним. Можешь использовать SqlResultSet здесь http://www.rsdn.ru/article/db/yukondotnet.xml

ЗЫ: А нельзя сначала залить данные а потом экзекьютить ридер?
Если б у нас было время,
Мы бы сдохли со скуки.
Re: SQL & SingleTone
От: Lloyd Россия  
Дата: 21.09.06 11:02
Оценка:
Здравствуйте, ZaKi, Вы писали:

ZK>Всем привет. возникла проблемма при реализации паттерна SingleTone

ZK>Метод CommandSql должен выполнять SQL запросы и подключаться к MySQL только 1 раз, для запросов,

В связи с чем было принято такое решение?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: SQL & SingleTone
От: ZaKi Россия  
Дата: 21.09.06 11:27
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, ZaKi, Вы писали:


ZK>>Всем привет. возникла проблемма при реализации паттерна SingleTone

ZK>>Метод CommandSql должен выполнять SQL запросы и подключаться к MySQL только 1 раз, для запросов,

L>В связи с чем было принято такое решение?


Всвязи с малобыджетностью проекта, и невозможностью заказчика купить МС СКУЛ Сервер
C++Builder6, C#.NET
Re[2]: SQL & SingleTone
От: ZaKi Россия  
Дата: 21.09.06 11:29
Оценка:
Здравствуйте, Nasreddin, Вы писали:


ZK>>Как обойти такую засаду ??

ZK>>(MySQl 5.0, MyODBCDriver 3.51, ODBC подключение к БД)
ZK>>Просто Не хотелось возиться с CSConnector от MySQL. как никак чужой код.

N>Это ты получаешь предупреждение о том, что соединение нельзя использовать повторно — нельзя читать одновременно набор и работать с ним. Можешь использовать SqlResultSet здесь http://www.rsdn.ru/article/db/yukondotnet.xml

ссылка не открылась (((
N>ЗЫ: А нельзя сначала залить данные а потом экзекьютить ридер?
нет. ... кажется ... не совсем понял как это сделать можно.
C++Builder6, C#.NET
Re[3]: SQL & SingleTone
От: Lloyd Россия  
Дата: 21.09.06 11:35
Оценка:
Здравствуйте, ZaKi, Вы писали:

L>>В связи с чем было принято такое решение?


ZK>Всвязи с малобыджетностью проекта, и невозможностью заказчика купить МС СКУЛ Сервер


Я имел в виду зачем вам понадобилось подключаться только 1 раз.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: SQL &amp; SingleTone
От: Аноним  
Дата: 21.09.06 11:36
Оценка:
>>Можешь использовать SqlResultSet

С ДОБРЫМ УТРОМ! Нет никакого SqlResultSet-а в природе. От него отказались хз когда. Это одно из невыполненных обещаний.

How can men die better than facing fearful odds,
For the ashes of their fathers and the temples of their gods?

| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: SQL &amp; SingleTone
От: Аноним  
Дата: 21.09.06 11:38
Оценка:
Автору: твой код — одно большое недоразумение. Кури матчасть.

How can men die better than facing fearful odds,
For the ashes of their fathers and the temples of their gods?

| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[4]: SQL & SingleTone
От: ZaKi Россия  
Дата: 21.09.06 11:51
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, ZaKi, Вы писали:


L>>>В связи с чем было принято такое решение?


ZK>>Всвязи с малобыджетностью проекта, и невозможностью заказчика купить МС СКУЛ Сервер


L>Я имел в виду зачем вам понадобилось подключаться только 1 раз.


Поскольку я пишу удаленный сервер, работающий с БД , и коннектов будет ОЧЕНЬ много то это ты часть — котрая сыкономит ресурсы.
поскольку при проведении нагрузочных тестов сервер падает от нагрузки ... DotTrace показал что на Connect disconnect тратится достаточно много времени, притом и сам MySQL подвисает при каждом коннекте больше, чем при одном висящем коннекте. У него каждый раз генерится какие-то там потоки, которые выгружаются с задержкой при дисконнекте.
Короче Singletone — то что надо! )))
C++Builder6, C#.NET
Re[2]: SQL & SingleTone
От: Nasreddin  
Дата: 21.09.06 12:10
Оценка:
Sorry

http://www.rsdn.ru/article/db/yukondotnet.xml
Если б у нас было время,
Мы бы сдохли со скуки.
Re: SQL & SingleTone
От: Аноним  
Дата: 22.09.06 13:37
Оценка:
По моему достаточно просто изменить код следующим образом:

ZK>
ZK>        private int (string query, string command) 
ZK>        {
ZK>                dbLtSet.Tables.Clear();
ZK>                try 
ZK>                {
ZK>                    if(!_connected)
ZK>                    {
ZK>                    DBconnect();
ZK>                    }
                    
ZK>                    dbCommand.CommandText=query;
ZK>                    //dbCommand.ExecuteReader();    
                    
ZK>                    //DBdisconnect();  //Если тут производить отключение от сервера - все работает.
ZK>                    if (command == "select") 
ZK>                    {
ZK>                        dbAdapt.SelectCommand = dbCommand;
ZK>                        dbAdapt.Fill(dbLtSet);
ZK>                    }
                                        else
                                        {
                                           dbCommand.ExecuteNonQuery
                                        } 
ZK>                    return 1;
ZK>                }
ZK>                catch (Exception ex) 
ZK>                {
ZK>                    MessageBox.Show(ex.Message,"Ошибка!");
ZK>                    return -1;
ZK>                }
ZK>                finally 
ZK>                {
ZK>                    dbCon.Close();
ZK>                }
ZK>        }
ZK>
Re: SQL & SingleTone
От: Аноним  
Дата: 22.09.06 13:54
Оценка:
Код, прямо скажем, загадочный...

Я так понимаю, что если (command == "select") то (по коду)
сначала будет выполнен

dbCommand.ExecuteReader();,

а затем еще и

dbAdapt.SelectCommand = dbCommand;
dbAdapt.Fill(dbLtSet);

вопрос, а зачем?
— сначала ExecuteReader() выполнит запрос на сервере и вернет reader который Вы игнорировали
— затем dbAdapt.Fill(dbLtSet); еще раз выполнит запрос, причем сделает это тоже вызвав
ExecuteReader()!!! и загрузив данные из ридера в датасет.

все бы ничего, (два одинаковых запроса подряд — не в счет)
но далеко не все провайдеры данных .NET имеют работать с двумя одновременно
открытыми ридерами.

Классы из набора System.Data.ODBC точно не могут!
О чем собственно и говорит возникающая у Вас ошибка...
Re: SQL &amp; SingleTone
От: Аноним  
Дата: 22.09.06 13:55
Оценка:
>>По моему достаточно просто изменить код следующим образом:

Блин... Секрет выдал...

How can men die better than facing fearful odds,
For the ashes of their fathers and the temples of their gods?

| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: SQL &amp; SingleTone
От: ZaKi Россия  
Дата: 22.09.06 23:35
Оценка:
Здравствуйте, BlackTigerAP, Вы писали:

BTA>Автору: твой код — одно большое недоразумение. Кури матчасть.


BTA>
данное сообщение получено с www.gotdotnet.ru

BTA>ссылка на оригинальное сообщение


Здесь гдето написано что я МегаОтец в программировании?? Это форум, и тут задают вопросы, что бы разобраться в интересующих вопросах ... мы все писали что нибудь и когда нибудь ... Здесь задают вопросы, если возникают трудности, а трудности возникают восновном у новичков. ИМХО МатЧасть тут вообще не при чем!
C++Builder6, C#.NET
Re[3]: SQL &amp; SingleTone
От: Аноним  
Дата: 23.09.06 05:42
Оценка:
>>Здесь гдето написано что я МегаОтец в программировании??

А как насчет перед тем, как что-то делать, прочитать хотя бы одну книжку по предмету? Там всё, как правило, хорошо расписано. Учиться по форумам — очень глупая идея, тут научат... такоому...

How can men die better than facing fearful odds,
For the ashes of their fathers and the temples of their gods?

| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[4]: SQL &amp; SingleTone
От: Аноним  
Дата: 23.09.06 14:13
Оценка:
>ZaKi, 21.09.06 16:51
>Поскольку я пишу удаленный сервер, работающий с БД ...

Посмотри здесь:http://www.gotdotnet.ru/LearnDotNet/NETFramework/223738.aspx

С уважением, Владимир.




данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.