Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выполнение скрипта программно [D7, MSSQL]


Hooch ©   (2004-04-05 12:04:00) 

День добрый !
 Господа, нужно выполнить в программе скрипт MS SQL и получить полный лог выполнения, в общем как в QA, может кто сталкивался, подскажите решение (утилиту osql не предлагать :-) )


Fay   (2004-04-05 17:04:00) [1]

Да я тебе верю на слово. Без всяких джедаистов (или как их там?).
Проверить всё равно лениво и пофигу 8)


sniknik   (2004-04-05 16:42:00) [2]

Fay ©   (05.04.04 16:33) [14]
ты просто полазь по форуму, тут люди имели конкретные проблемы при подключении к MSSQL через ODBC в силу его ограниченности, (причем используя ADO но указывая ODBC DSN в строке) единственное изменение конекта на OLEDB драйвер эти проблемы решало... (точно не скажу что именно, давно было, скорее всего уже в дайджестах, искать ломает ;о))


Fay   (2004-04-05 16:33:00) [3]

Учитывая своё глубокое незнание ODBC (ни в зуб ногой), я, пожалуй, откажусь.


sniknik   (2004-04-05 16:30:00) [4]

Delirium ©   (05.04.04 16:24) [12]
> Хотя, возможно, работа осуществляется непосредственно с ole db MSSQL
зачем? переписывать/двоить обмен данными при работе с удаленным mssql сервером?
меня бы заломало. ;о)


Delirium   (2004-04-05 16:24:00) [5]

"зато ODBC-шные библиотеки имеются в избытке" - тем не менее, без ADO QA - не работает. Хотя, возможно, работа осуществляется непосредственно с ole db MSSQL... Точно можно утверждать, что для MSSQL взаимодействие с QA осуществляется так-же, как и с приложением использующим ADO, но не ODBC - QA поддерживает клиентский MultiRecordset.


sniknik   (2004-04-05 16:20:00) [6]

Fay ©   (05.04.04 15:30) [8]
давай сравнивать, ты делаеш то что может QA через ODBC я через ADO, начнем с возврата значения PRINT. чьи возможности раньше кончатся тот отпадает. согласен?


sniknik   (2004-04-05 16:20:00) [7]

just me   (05.04.04 16:15) [9]
аналогично [10]


just me   (2004-04-05 16:15:00) [8]

2 sniknik ©   (05.04.04 13:48) [5]
> тем не менее QA работает через ADO.
Вестма сомнительно. К иому же Dependency Walker (Visual Studio) не показывает в списке подгруженных DLL ничего из состава ADO, зато ODBC-шные библиотеки имеются в избытке


Fay   (2004-04-05 15:30:00) [9]

А я вот слышал, что на ODBC. ODBC тоже, кажись, не в Oracle ваяли...


sniknik   (2004-04-05 15:15:00) [10]

а то что их обоих (ADO/QA) в мелкософте писали, и ADO в основном под MSSQL разрабатывался не доказательство?

лично меня бы ломало писать две разные вещи если можно одной обойтись, в мелкософте тоже думаю не трудоголики. ;о))

лутше ты докажи что нет.


Hooch   (2004-04-05 14:41:00) [11]

>> sniknik ©
а есть доказательства ? просто пару раз слышал подобное но нигде доказательств не нашел


sniknik   (2004-04-05 13:48:00) [12]

> думаю что через ADO не получится все ошибки получить, так я уже пробовал часть, так сказать, не критичный ошибок вообще не
> приходит, принты работат через раз ну и т.д. и.т.п.
тем не менее QA работает через ADO.


Hooch   (2004-04-05 13:45:00) [13]

спасибо, счас попробую


just me   (2004-04-05 13:35:00) [14]

Можно с помощью SQLDMO, примерно так:
var
 Server   : Variant;
begin
 try
   try
     Server := CreateOleObject('SQLDMO.SQLServer');
     Server.Connect(strServerName, strLoginID, strPassword);
     Server.ExecuteImmediate(strScriptText, nExecMode, 0);
   except
     on E : EOleException do
       Application.MessageBox(PChar(msgWrongSQLScript + E.Message), PChar(strMessError), mb_OK + MB_ICONERROR);
   end;
   Server.DisConnect;
 finally
   Server := Unassigned;
 end;
end;
Нужное значение параметра nExecMode посмотри в доке на SQLDMO (в BOL например)


Hooch   (2004-04-05 12:24:00) [15]

думаю что через ADO не получится все ошибки получить, так я уже пробовал часть, так сказать, не критичный ошибок вообще не приходит, принты работат через раз ну и т.д. и.т.п.


stone   (2004-04-05 12:07:00) [16]

ADOCommand.Execute (для скрипта) + ADOConnection.AfterExecute (для лога)


Наверх

Титульная страница Поиск, карта сайта Написать письмо