Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Delphi7+MSSQL7+SDAC
|
|||
|---|---|---|---|
|
#18+
Для доступа к MSSQL использую SDAC 2.40.0.15. На форме имеются 2 TMSQuery(MSQuery1 и MSQuery2), которые соединены с TMSConnection. MSQuery1 создает временную таблицу #tmpTable и читает из нее данные. MSQuery2 использует временную таблицу #tmpTable для своих расчетов и возвращает данные. Все это прекрасно работает пока в MSQuery1 не добавляю параметры. После добавления параметров в MSQuery1, MSQuery2 не видит временную таблицу #tmpTable, созданную MSQuery1. Как избежать этот столь неприятный момент?, или это глюк SDAC. Использовал вместо параметров макросы - все работает, но такое решение мне не подходит, нужны только параметры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 13:05 |
|
||
|
Delphi7+MSSQL7+SDAC
|
|||
|---|---|---|---|
|
#18+
А посмотреть бы на эти куери, причем в виде, как они отлавливаются сиквельным профайлером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 13:52 |
|
||
|
Delphi7+MSSQL7+SDAC
|
|||
|---|---|---|---|
|
#18+
Вот вариант с параметрами в MSQuery1 взятые из профайлера Подключение ----------------- select 504, c2.name, c1.name from master.dbo.syscharsets c1, master.dbo.syscharsets c2, master.dbo.syscurconfigs f where c1.id = f.value and f.config = 1123 and c1.csid = c2.id MSQuery1.Active ----------------- SET NO_BROWSETABLE ON sp_executesql N'DECLARE @MinDigit INT, @MaxDigit INT, @Digit INT, @RecCount INT, @NextDrawing INT IF EXISTS(SELECT ID FROM TEMPDB.DBO.SYSOBJECTS WHERE ID = OBJECT_ID(''TEMPDB..#tmpStats'')) DROP TABLE #tmpStats CREATE TABLE #tmpStats ( Digit INT, Frequency NUMERIC(18, 2), Period NUMERIC(18, 2)) SET @NextDrawing = CASE WHEN @P1 = 0 THEN (SELECT MAX(Drawing) FROM anlScoring20) + 1 ELSE @P2 END IF EXISTS(SELECT ID FROM TEMPDB.DBO.SYSOBJECTS WHERE ID = OBJECT_ID(''TEMPDB..#tmpScoring20'')) DROP TABLE #tmpScoring20 SELECT * INTO #tmpScoring20 FROM anlScoring20 WHERE (Drawing < @NextDrawing) and (0=0 ) SELECT @MinDigit = 1, @MaxDigit = 80, @Digit = 1, @RecCount = (SELECT COUNT(*) FROM #tmpScoring20) WHILE @Digit <= @MaxDigit BEGIN INSERT INTO #tmpStats (Digit, Frequency, Period) SELECT @Digit, @RecCount/CAST(COUNT(*) AS NUMERIC(18, 2)), @NextDrawing-((COUNT(*)+1)* (MAX(Drawing)-1)/CAST(COUNT(*) AS NUMERIC(18, 2))) FROM #tmpScoring20 WHERE @Digit IN (N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15, N16, N17, N18, N19, N20) SET @Digit = @Digit + 1 END SELECT * FROM #tmpStats', N'@P1 int,@P2 int', 0, 0 MSQuery2.Active ----------------- SET NO_BROWSETABLE OFF IF EXISTS(SELECT ID FROM TEMPDB.DBO.SYSOBJECTS WHERE ID = OBJECT_ID('TEMPDB..#tmpPeriod')) DROP TABLE #tmpPeriod CREATE TABLE #tmpPeriod ( ID INT IDENTITY (1, 1), Digit INT, Period NUMERIC(18, 2)) INSERT INTO #tmpPeriod (Digit, Period) SELECT Digit, Period FROM #tmpStats ORDER BY Period SELECT * FROM #tmpPeriod ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 14:57 |
|
||
|
Delphi7+MSSQL7+SDAC
|
|||
|---|---|---|---|
|
#18+
Ну так у тебя же вся инструкция завернута (SDACом) в sp_executesql. И временная таблица после выполнения этого бача сразу уничтожается. Вот ты ее и не видешь. И почему все это с клиента посылается, а не оформлено в виде хп. Временную таблицу создай отдельно, причем, чтобы инструкция на ее создание не заварачивалась в sp_executesql, создай через метод Execute компонента Connection. Затем хп закачай в нее данные и верни результат. И второй бач оформь в виде хп. А лучше забить на работу с такими вот временными таблицами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 15:36 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32316284&tid=2116063]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 429ms |

| 0 / 0 |
