|
![]() |
#1 |
Участник
|
После сравнения скорости считывания данных (4000 записей, 25 полей) из результирующего набора получены следующие данные:
ODBC ResultSet - 41 сек ADO RecordSet - 7 сек. Учитывая, что сам набор данных формируется примерно 25 сек, гораздо привлекательнее в этом случае показывает себя ADO. Поэтому первоначальный вопрос о том, как организовать ADO-подключение (своё для каждого пользователя, одно для всех под правами Аксапты, и т.п.?) для нужд выполнения аналитических запросов, остаётся открытым. |
|
![]() |
#2 |
MCT
|
на мой взгляд просто ODBC имеет больше примеров использования, хотя надо отдать должное тормозит основательно.
Я пользовал такой пример X++: CCADOConnection connection = new CCADOConnection(); CCADOCommand ccADOCommand; CCADORecordSet record; int i=1; //str connectStr = "Provider=SQLNCLI.1;Integrated Security=SSPI;"+ //"Persist Security Info=False;Initial Catalog=Yourbase;Data Source=Yoursever"; str connectStr = strFmt('Provider=SQLOLEDB.1;Persist Security Info=False;User ID=%1;Password=%2;Initial Catalog=%3;Data Source=%4' , 'username' //username , 'Pa$$w0rd' //pwd , 'database' //database , 'server' //server ); COM recordSet; ; // Executing a SQL Statement try { connection.open(connectStr); ccADOCommand = new CCADOCommand(); //отправляемый запрос ccADOCommand.commandText("Select * from CLIENT"); ccADOCommand.activeConnection(connection); record = ccADOCommand.execute(); recordSet = record.recordSet(); while (!record.EOF()) { print record.fields().itemIdx(1).value(); if(i>10) break; recordSet.moveNext(); i++; } pause; } catch { error("An Exception has occurred"); } connection.close(); ЗЫ заведенный пользователь - под кем крутится АОС так и не привязанный к нему.
__________________
Axapta book for developer Последний раз редактировалось MikeR; 30.08.2010 в 17:48. |
|
![]() |
#3 |
Участник
|
Цитата:
![]() Что именно Вы вкладываете в понятие "считывание данных"? Покажите тот тестовый код при помощи которого Вы тестировали для ADO и ODBC. Если Вы вообще не можете подключиться по ADO, то как же Вы тестировали-то? Внутренние механизмы ADO и ODBC примерно одинаковые. Используется примерно одинаковый набор API-функций. Поэтому скорость закачки принципиальной разницы не имеет. Однако ADO возвращает результирующий набор в виде COM-объекта, который еще надо адаптировать под текущую среду. Поэтому, скорее следует ожидать, что ADO будет работать чуть медленее, чем ODBC именно за счет дополнительной конвертации. Но это именно "чуть". Не думаю, что разница будет такой уж принципиальной. |
|
Теги |
ado, connection string |
|
|