powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ANSI_NULLS и ANSI_DEFAULTS
37 сообщений из 37, показаны все 2 страниц
ANSI_NULLS и ANSI_DEFAULTS
    #32043041
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго утра, Дамы и Господа!
Не подскажет ли кто-нибудь, в чем тут проблема.
Пишу SP, где среди прочего есть такая строка:
Код: plaintext
1.
SELECT *
FROM OPENROWSET('MSDASQL', 'DRIVER={Microsoft dBase Driver (*.dbf)}', 'select * from \\main\net\coptt\h10\h10a.dbf') AS Rowset_1

EM громко ругается и говорит, что необходимо "включить" опции ANSI_NULLS и ANSI_DEFAULTS. Знаю, что нужно использовать SET, но точно не знаю, где и как его в SP правильно расставить. Делаю так
SET ANDI_NULLS ON
GO
SET ANDI_DEFAULTS ON
GO
дальше вышенаписанный код
GO
и вот тут EM выдает что-то типа "неправильный объект Rowset_1". Как лечить? Поможите, плиз....
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043042
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка:
...
SET ANSI_NULLS ON
GO
SET ANSI_DEFAULTS ON
GO
...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043045
nik_nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запусти QA
Установи эти установки перед созданием процедуры, т.е.
SET ANDI_NULLS ON
GO
SET ANDI_DEFAULTS ON
GO
create procedure ...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043046
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, извините, поторопился с вопросом; разобрался сам. С утра еще тутумкалка не включилась... :)
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043092
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хе, самонадеянное заявление, видать, тутумкалка вообще не тутумкает.. :(
Вот такой скрипт:
...

SET ANSI_NULLS ON
GO
SET ANSI_DEFAULTS ON
GO

TRUNCATE TABLE H10a

INSERT INTO H10a (HH, CEHA, KEI, HAIM, D_OBR, TNARM, CEHA_C)
SELECT a.HH, a.CEHA, a.KEI, a.HAIM, a.D_OBR, a.TNARM, a.CEHA_C
FROM OPENROWSET('MSDASQL', 'DRIVER={Microsoft dBase Driver (*.dbf)}', 'select * from \\main\net\coptt\h10\h10a.dbf') as a
GO

Из QA все работает, записи вставляются, но при одном условии (приготовились смеяться) - если ЗАКОММЕНТИРОВАТЬ SETы! Если нет, то не вставляются! Wow!! И EM подвисать начинает... Закроешь QA - все нормально... Может, кто сталкивался, а?
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043107
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, похоже, это совершенно не мой день! "Звезды Сад-ад-Забих..." не просто встали сегодня неблагоприятно для меня, а еще и показывают сверху различные интимные места :) Вот что вылечило (из QA):

SET ANSI_NULLS ON
GO
SET ANSI_DEFAULTS ON
GO

TRUNCATE TABLE H10a
GO

BEGIN TRANSACTION
INSERT INTO H10a (HH, CEHA, KEI, HAIM, D_OBR, TNARM, CEHA_C)
SELECT a.HH, a.CEHA, a.KEI, a.HAIM, a.D_OBR, a.TNARM, a.CEHA_C
FROM OPENROWSET('MSDASQL', 'DRIVER={Microsoft dBase Driver (*.dbf)}', 'select * from \\main\net\coptt\h10\h10a.dbf') as a
COMMIT TRANSACTION
GO

Но однако ж, так и не понял, как запихнуть в SP эти самые злополучные SETы? Если я правильно понимаю, то необходимо создать SP, в ней прописать оба Setа, так?, а затем в этой же процедуре создать новую, и в ней уже рисовать вышеуказанный код. Если я ошибаюсь, поправьте меня, плиз...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043110
nik_nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эти setы пишешь перед созданием процедуры в QA, а в процедуре их больше не указываешь.
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043211
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nik_nik, Вы - гений!! Мое СПАСИБО не знает границ!! Все получилось! Но есть одна закавыка. Насоздавал по Вашему способу в QA 7 штук SP приблизительно одинаково вида, типа

CREATE PROCEDURE dbo.CopyH34a
AS

TRUNCATE TABLE H34a

BEGIN TRANSACTION

INSERT INTO H34a (IZD, ZAKAZ, HAIM, HAIM1, PEO, KTO, KTO1, PCIZD, RAZ_PL, D_OBR, TNARM, NPP, KK, HAIM_SB)
SELECT a.IZD, a.ZAKAZ, a.HAIM, a.HAIM1, a.PEO, a.KTO, a.KTO1, a.PCIZD, a.RAZ_PL, a.D_OBR, a.TNARM, a.NPP, a.KK, a.HAIM_SB
FROM OPENROWSET('MSDASQL', 'DRIVER={Microsoft dBase Driver (*.dbf)}', 'select * from \\main\net\coptt\h10\h34a.dbf') as a

COMMIT TRANSACTION

GO

отличаются только названием таблиц и наборами полей. По отдельности каждая работает как часы. Ну, естественно, горю желанием проверить все 7 штук сразу (очень суммарное время выполнения интересует). И тут закавыка: любая 1-я процедура проходит, последующие - нет:

Server: Msg 7399, Level 16, State 1, Procedure CopyH34a, Line 10
OLE DB provider 'MSDASQL' reported an error. The provider did not give any information about the error.

Не подскажете, уважаемые, под какой ногой грабли?

P.S. nik_nik, простите, РБ - это часом не "Республика Беларусь"?
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043252
Фотография boogier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если выполнять процедуры друг за другом, но с задержкой (waitfor delay), мож получится?
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043286
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используй фокспрошный драйвер...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043312
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ... у фокспрошного драйвера есть параметр Exclusive...

Код: plaintext
OPENROWSET('MSDASQL','Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB=Z:\BUH\BEST4904\ENERGY\;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Russian;Null=No;Deleted=Yes;','SELECT main.dataoper, main.dt_schet, main.summa FROM main WHERE main.dt_schet LIKE "Н%"')
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043411
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Утро доброе, Уважаемые!

2MiCe

спасибо за совет, благодаря ему процедуры все-таки начали выполняться пачками, но вылезла новая бяка:
1. поля с кириллицей таблиц на сервере стали содержать поля с суахили :)
2. если в таблице-источнике есть поля даты с Null, то:

Server: Msg 298, Level 16, State 1, Procedure CopyT40c, Line 10
The conversion from datetime data type to smalldatetime data type resulted in a smalldatetime overflow error.

Чем лечится?
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043445
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попытался вылечить 2-ю бяку с помощью "SET DATEFORMAT dmy" - не вышло... :( Неужто триггер надо рисовать? Уважаемые, поможите, плиз...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043456
Фотография boogier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. перекодировка
2. попробуй datetime вместо smalldatetime
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043457
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. а как? (прости за наверняка глупый вопрос, но после 7 лет асма на сиквел с дельфой тяжело переползать...)
2. т.е. предлагаешь поменять поле в таблице на сервере с smalldatetime на datetime?
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043479
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в строчке Collate=Russian; отставил?
если да то нужно русский мдак поставить....
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043497
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Collate=Russian оставил, конечно...
а МДАК на сервер ставить надо?
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043515
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а кодировка в дбф какая?(866,1251)
попробуй в одбс прилинковать любой файл и в дополнительных параметрах посмотреть ставится ли коллйт для русского?
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043528
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- кодировка 866
- коллайт для русского ставится
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043544
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня кодировка тож 866 и все ок...
если нужны null в строке подключения есть одноименный параметр ...
ну про коллейт.... покажи ка строчку как вызываеш .. всю...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043560
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот:

Код: plaintext
1.
2.
3.
4.
INSERT INTO H13a (KEI, HAIM, HAIMC, TNARM, D_OBR)
SELECT b.KEI, b.HAIM, b.HAIMC, b.TNARM, b.D_OBR
FROM 
OPENROWSET('MSDASQL','Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB=\\main\net\coptt\h10\;SourceType=DBF;Exclusive=No; Null=Yes; Collate=Russian;','SELECT * FROM H13a') As b
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043567
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а колейт базы у тебя какой?
попробуй кастить в юникод текстовые поля...
может поможет COLLATE...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043574
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>а колейт базы у тебя какой?
Смотрел тут : NewBase properties -> General -> Collation Name (правильно?) - "Cyrillic_General_CI_AS"

>>попробуй кастить в юникод текстовые поля...
в OPENROWSETe я смогу это сделать? Или еще как-нить, но только не меняя ничего в таблице-источнике?...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043582
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я имею ввиду...
Код: plaintext
1.
2.
3.
SELECT b.KEI, CAST(b.HAIM as nvarchar( 20 ) ), b.HAIMC, b.TNARM, b.D_OBR
FROM 
OPENROWSET('MSDASQL','Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB=\\main\net\coptt\h10\;SourceType=DBF;Exclusive=No; Null=Yes; Collate=Russian;','SELECT * FROM H13a') As b

если не поможет подключи как линкед сервер и поиграйся в настройках с колятион (совместим,удаленный)....
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043614
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот честно тебе скажу - удивляюсь сильно: пока использовал dBase-ный драйвер, все было пучком, как фокспрошный начал юзать - так "вот тебе бабушка и юрьев день..." :) ! Но самое главное - мне эти процедуры с клиента запускать надо (Дельфи 5), так с фокспрошныйм драйвером вроде как запускаются, а с dBase-ким - нет, "Дисковая или сетевая ошибка" пишет! Не разъяснишь, в чем дело мож быть?
А с линкед сервером сейчас пробовать буду, но что-то мне подсказывает, что и это всех траблов не вылечит...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043625
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, подскажите, какого провайдера надо выставлять при создании нового (ручками) связанного сервера для dbf-таблиц? 2000 сервак...
ЗЫ а тяжело с девчатами на топе форума конкурировать :)
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043661
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
г-хм, последний глупый вопрос снимается... sorry Ув. гуру, не судите строго (так всегда бывает - сначала нервно кричишь, потом начинаешь в прошлых постингах смотреть.. :)
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043679
Фотография boogier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Можно процедурой или функцией
2. да
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043764
nik_nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
manowar РБ - это Республика Беларусь
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043774
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго утра всем!
Уважаемые, с линкед сервером все получилось, проблемы с кириллицей и полями даты исчезли!! Казалось бы, "время бить в барабан..." Но при попытке запустить sp из дельфей возникает вот что:

Project Limit raised exception class EOleException with message '[Ole/DB provider returned message: Неопознанная ошибка]'

линкед сервер делал так:

EXEC sp_addlinkedserver
@server = 'LS_1',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = '\\main\net\coptt\h10\', @provstr = 'dBASE IV'


запускаемая процедура:

CREATE PROCEDURE dbo.CopyH13a_ls
AS

BEGIN TRANSACTION

TRUNCATE TABLE H13a

INSERT INTO H13a (KEI, HAIM, HAIMC, TNARM, D_OBR)
SELECT b.KEI, b.HAIM, b.HAIMC, b.TNARM, b.D_OBR
FROM OPENQUERY(LS_1, 'select * from H13a') as b

COMMIT TRANSACTION

Запускаю через ADOStoredProc, конечно, все права на sp и таблицу H13a на серваке у меня есть. В LS -> security стоит: Be made using the login's current security context

Не подскажете, где копать?

Delphi 5, SQL SERVER 2000
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043777
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2nik_nik
а живете случаем не в Гомеле? Не сочтите за назойливость, просто знакомцы у меня там...
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043830
nik_nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
manowar Живу не в Гомеле, а в Гомельской обл. Сам то, откуда.
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043831
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2nik_nik
пошли на "..треп", а то оффтопик постим.. :)
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043876
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> manowar

Попробуй в строке соединения указать дополнительный параметр "use procedure for prepare=0". От "неопознанной" ошибки должно избавить.
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043883
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Dankov

прости непонятливого, но в строке соединения чего с чем?
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043884
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ConnectionString в ADO
...
Рейтинг: 0 / 0
ANSI_NULLS и ANSI_DEFAULTS
    #32043891
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что делаю (по порядку):
1. помещаю на форму TADOStoredProc :)
2. создаю в инспекторе коннектион_стринг на сервер, запоминаю, стираю
3. пишу код :
Код: plaintext
1.
ADOStoredProc5.ConnectionString := 'Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=NewBase;Data Source=titan, use procedure for prepare=0';
ADOStoredProc5.Exec;

и вешаю это все на буттон
4. запускаю приложение, жму буттон. Реакция:
а) 5-6-ти секундный тормоз
б) после тормоза:
Project Limit raised exception class EOleException with message '[DBNMPNTW] Specifided SQL server not found'.

А с этим как бороться? Гуру, на вас вся надежда...
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ANSI_NULLS и ANSI_DEFAULTS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]