29.06.2010, 14:38 | #1 |
Участник
|
Добрый день.
Я наверно повторюсь, но прочитав кучу тем так и не удалось решить проблему. Очень нужна помощь. БД SQL. Есть отчет, который очень долго рассчитывает значения по базе, так как она очень большая. Хотелось бы из nav написать запрос напрямую к БД, чтобы это все отработало быстрей. Подскажите, пожалуйста, как это можно сделать. |
|
29.06.2010, 16:24 | #2 |
Участник
|
Думаю что напрямую к бд скорость может и возрастёт, но не думаю что сильно, база то одна и та же. Может проще алгоритм переработать? Объясните по конкретнее что рассчитывает долго.
|
|
30.06.2010, 09:08 | #3 |
Участник
|
Automation ADO Recordset, ADO Connection и MSDN Вам в помощь
|
|
30.06.2010, 14:12 | #4 |
Участник
|
Это пример для вызова хранимой процедуры.
GLOBAL adoCmd Automation 'Microsoft ActiveX Data Objects 2.8 Library'.Command adoRst Automation Microsoft ActiveX Data Objects 2.8 Library'.Recordset adoCn Automation 'Microsoft ActiveX Data Objects 2.8 Library'.Connection CREATE (adoCn); strConnection:='driver={SQL Server};server=mysqlserver;uid=my_user;'+ 'pwd=user_pass;database=myDB'; adoCn.ConnectionString:=strConnection; adoCn.Open; CREATE(adoCmd); adoCmd.ActiveConnection :=strConnection; adoCmd.CommandTimeout := 20; adoCmd.CommandType := 4; //adCmdStoredProc strCommand:='SP_MyProcedura'; adoCmd.CommandText :=strCommand; adoCmd.Parameters.Refresh; adoCmd.Parameters.Item(1).Value := "CustomerNo."; adoCmd.Parameters.Item(2).Value := BeginDate; adoCmd.Parameters.Item(3).Value := EndDate; adoRst := adoCmd.Execute; CLEAR(adoRst); CLEAR(adoCmd); CLEAR(adoCn);
__________________
--------------------------------------------------------------------------------------------- "Собрать стадо из баранов легко, трудно собрать стадо из кошек" Профессор Сергей Капица |
|
30.06.2010, 16:06 | #5 |
Участник
|
|
|
30.06.2010, 16:30 | #6 |
Administrator
|
много нас
и есть готовые работоспособные тиражируемые решения |
|
30.06.2010, 17:20 | #7 |
Участник
|
Цитата:
и есть готовые работоспособные тиражируемые решения
PS. По доброму. |
|