Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите разобраться с OPENROWSET
|
|||
|---|---|---|---|
|
#18+
Есть SQL2000 sp1 Пишу хранимую процедуру, которая с помощью OPENROWSET из DBFовского файла должна выбираеть нужные данные. Вот текст процедуры set nocount on set quoted_identifier off set ansi_nulls on set ansi_warnings on declare @str_SQL varchar(1000), -- Строка запроса @dBegin smalldatetime, @dEnd smalldatetime, @str1 varchar(120), @str2 varchar(120), @str3 varchar(120), @str4 varchar(120), @sDBegin char(10), -- Дата начала периода (строка) @sDEnd char(10) -- Дата окончания петиода (строка) /* Создаем временную таблицу для переноса списка накладных, в которых указан данный путевой лист*/ create table #TTNDBF (nTTN_ID numeric(8,0), -- ID накладной из старой базы cTTN char(, -- Номер накладной dTTN smalldatetime, -- Дата выписки накладной cPrizPost char(1) NULL, -- Признак поставщика: П - предприятие, О - организация, Э - экспедитор nPost numeric (8,0) NULL, -- ID поставщика (подразделение комбината, экспедитор или точка) cPrizPotr char(1) NULL, -- Признак потребителя, то же что и признак поставщика nPotr numeric (8,0) NULL, -- ID потребителя nClient numeric (8,0) NULL, -- ID клиента, если необходимо nPL_ID char(6) -- ID путевого листа из старой базы ) select @dBegin=getdate(),@dEnd=getdate() select @sDBegin=convert(char(10),@dBegin,110), @sDEnd=convert(char(10),@dBegin,110) -- Формируем строку запроса select @str1=" insert into #TTNDBF (nTTN_ID, cTTN, dTTN, nClient, nPL_ID)", @str2=" select * from openrowset('MSDASQL','Driver={Microsoft dBase VFP Driver (*.dbf)};DBQ=l:\base;SourceType=DBF;',", @str3=" 'select TTN.C_TTN, TTN.N_TTN, TTN.D_TTN, TTN.C_BUYER, TTN_DOP.PU_LIST from TTN, TTN_DOP where ", @str4="TTN.D_TTN>={"+@sDBegin+"} and TTN.D_TTN<={"+@sDEnd+"} and TTN_DOP.C_TTN=TTN.C_TTN')" select @str_SQL=@str1+@str2+@str3+@str4 exec(@str_SQL) select * from #TTNDBF drop table #TTNDBF Если запускаю эту процедуру, то получаю ошибку Server: Msg 7405, Level 16, State 1, Line 1 Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query. Если же все это набираю в Query Analyzer, то все проходит без проблем. С уважением, Николай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2002, 06:31 |
|
||
|
Помогите разобраться с OPENROWSET
|
|||
|---|---|---|---|
|
#18+
Ну так все же в сообщении написано В QA набираете SET ANSI_NULLS ON GO SET ANSI_WARNINGS ON GO CREATE PROCEDURE myproc AS ... GO и будет вам ваша процедура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2002, 06:59 |
|
||
|
Помогите разобраться с OPENROWSET
|
|||
|---|---|---|---|
|
#18+
Спасибо, Glory!!! Но почему установка set ansi_nulls on set ansi_warnings on в теле процедуры, не влияет? С уважением, Николай! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2002, 07:18 |
|
||
|
Помогите разобраться с OPENROWSET
|
|||
|---|---|---|---|
|
#18+
А объяснение простое BOL The setting of SET ANSI_NULLS is set at execute or run time and not at parse time . Т.к. batch рассматривается как одно целое, то на момент его компиляции действуют установки, выполненные до него, но не те, которые устанавливаются в нем самом. Т.е. если бы вам вдруг удалось "проскачить" этап компиляции, то ваш batch безусловно бы сработал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2002, 07:27 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32025315&tid=1823540]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 346ms |

| 0 / 0 |
