Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Microsoft SQL Server

Автор: zsv
Дата сообщения: 17.03.2006 15:45
Подскажите, как мне прикрутить к своему запросу результаты, возвращаемые сохраненными процедурами типа SP_HELP_JOB.

exec msdb..sp_help_job NULL,'StartTransProtocolAgent','JOB'
возвращает мне список заданий (в виде одного множества, без учета шагов и расписаний). Мне надо потом этот список вложить внутренним селектом во внешний.
Как?

Автор: EZH
Дата сообщения: 17.03.2006 16:13
zsv
Можно создать временную таблицу с полями, аналогичными возвращаемым хранимой процедурой, а затем использовать синтаксис

Код: INSERT #Временная_таблица EXEC Хранимая_процедура
Автор: zsv
Дата сообщения: 17.03.2006 18:45
EZH

Цитата:
Можно создать временную таблицу с полями, аналогичными возвращаемым хранимой процедурой


Это я знаю, а еще есть какие нить варианты?
Автор: EZH
Дата сообщения: 17.03.2006 22:53
zsv
Да варианта собственно только два - тот что я привел, и через OPENROWSET/OPENQUERY.
Оба примера тут http://www.gotdotnet.ru/DotNet/FAQ/DataWorks/MSSQLDesignNDev/267408.aspx

Первый, имхо, удобнее.
Автор: fil1111
Дата сообщения: 18.04.2006 15:40
кто нибудь в курсе даты выхода окончательной версии 2005 SP1 ?
Автор: steroid
Дата сообщения: 20.04.2006 04:05
fil1111
уже вышла

кто нибудь подскажет как на диск записать то 2005 ? у ней исошник за 800 метров (
Автор: naPmu3aH
Дата сообщения: 20.04.2006 10:10
steroid

Цитата:
у ней исошник за 800 метров (

DVD уже отменили?
Автор: avaba
Дата сообщения: 06.06.2006 15:28
Народ
Ставлю SQL2k5 переделанный
transform-pack SQL2005 x86 Evaluation -> x86 Standard (76 Mb) либо
transform-pack SQL2005 x86 Evaluation -> x86 Enterprise (77 Mb) не важно
все Ok

Пытаюсь накатить SP1. При установке выдает, когда устанавливается DBEngine что-то типа "Locked ...." Continue или Сancel. Жму Continue долго думает потом выдается Программа Hotfix.exe выполнила недопустимую операцию. Отправить сообщение об ошибке в MS. Жму нет. Продолжает дальше и выдает Failure на DBEngine.

Standart ставился на WinXP и Win2k3
Enterprise на Win2k3.
В домен не включал, устанавливал все службы какие были доступны при инсталяции, использовалась смешанная аутентификация.
Автор: FreemanRU
Дата сообщения: 14.06.2006 11:14
Как создать пользователя (sp_addlogin), дать ему роли на базу, роли и на сервере, записть информацию в определенную таблицу, и всё это в рамках одной транзакции в одной процедуре?

В хелпе написано:

Цитата:

sp_addlogin cannot be executed within a user-defined transaction.

Соответсвенно вопрос - как отменить всё сделаное, если хотя бы одна операция закончилась неудачно?

Сейчас есть процедура, которая делает всё, но нет отката в случае провала какого-то шага.
Автор: Solnake
Дата сообщения: 14.06.2006 13:24
FreemanRU
Откат транзакций вощето делается rollback tran, если это интересновало. Как делать в транзактСКЛ юзеров - не знаю, не доводилось.
Автор: JonyBes
Дата сообщения: 17.06.2006 14:59
Подскажите как преобразовать КЛАДР в формат MS SQL.
Задача такая :
В моей базе данных используются города, области, улицы. Чтобы не набивать все в ручную решил использовать кладр налоговой. Вот...
Знаний не мого - отсего слегонца вошел в ступор!
С чего начать?
Автор: Solnake
Дата сообщения: 17.06.2006 15:45
JonyBes
Хм... для начала что такое КЛАДР? В каком там формате хранятся данные ,если известно?
Автор: naPmu3aH
Дата сообщения: 17.06.2006 16:18
Solnake

Цитата:
Хм... для начала что такое КЛАДР? В каком там формате хранятся данные ,если известно?

Адресный классификатор.

JonyBes

Цитата:
С чего начать?

С разбора/поиска формата КЛАДРа, чтобы установить соответствие нужных полей. Самый простой способ IMHO - открытие файлов данных в Excel/Access (они умеет работать с DBF от DBase/Foxpro).
Ну а потом - переливание данных в вашу базу любым удобным Вам способом.
Автор: JonyBes
Дата сообщения: 18.06.2006 09:33
А, как сохранить ссылки. т.к перебивать принадлежность улиц к городу, городов к краям, областям - труд оч большой.
Автор: Solnake
Дата сообщения: 18.06.2006 11:21
Вычисялять както форинкеи
Автор: ionflux
Дата сообщения: 18.06.2006 20:38
Форинкеи там вычисляются довольно быстро, вот только их формат оставляет желать лучшего. У меня например для каждого форенкея по три вычисляемых поля, в которых разбит для грамотной связки ключ из таблиц КЛАДРа.
Автор: JonyBes
Дата сообщения: 18.06.2006 21:31
ionflux
Если можно по подробнее
Автор: JonyBes
Дата сообщения: 19.06.2006 08:38
Перевел базу кладр через аксес. Подключаю в делфях через адо. База запускается оч медлено. Как победить?
Автор: naPmu3aH
Дата сообщения: 19.06.2006 19:44
JonyBes

Цитата:
База запускается оч медлено

Что бы это значило? (с)
Автор: JonyBes
Дата сообщения: 22.06.2006 11:49
Судь вот в чем:
Пишу процедуру:
CREATE PROCEDURE pr
@path varchar
AS
select * from PS_Area
where fullpath = @path
GO

Значение @path = .1.2.
Процедура не работае(уже пробовал и одинарные ковычки и скобки - не помогает)

А если так:
CREATE PROCEDURE pr
AS
select * from PS_Area
where fullpath = '.1.2.'
GO

то все ОК
В чем засада?
Автор: Solnake
Дата сообщения: 22.06.2006 11:54
JonyBes
Ну у тебя ведь @path varchar. А ты хочеш ему присвоить в первом варианте хз что.
varchar - это набор символов. Лучше обьявлять так : @path varchar(16) или нужную тебе розмерность.
Вот поэтому у тебя второй вариант пашет.
и есть такая кнопочка в QA как F1.
Удачи.

Тфу ты блин, когда я нуачусь читать до конца ))
Вероятнее всего поле fullpath какоето замученое...

Матерится где? Откуда присваиваеш ?
Автор: JonyBes
Дата сообщения: 22.06.2006 15:50
Все ОК, нужно было у varchar выставить розмерность и все пошло.
Поймал глюк
Автор: JonyBes
Дата сообщения: 23.06.2006 19:38
CREATE PROCEDURE Sity_tip

@path varchar(50),
@name varchar(50),
@type varchar(50)

AS

select id_area, name_area, id_typearea, level_, fullpath
from PS_Area
where id_typearea=@type and fullpath like @path+ '%' and name_area like @name + '%'
GO

Переменная @type принимает значение в числах 7,11,56 и др.
Как мне выбрать все значения сразу?
Автор: EZH
Дата сообщения: 23.06.2006 21:30
JonyBes

Цитата:
Переменная @type принимает значение в числах 7,11,56 и др.
Как мне выбрать все значения сразу?

Тебе надо сделать сравнение id_typearea с перечнем целых чисел?
Тогда так:

Код:
... WHERE id_typearea IN(7,11,56)
Автор: Solnake
Дата сообщения: 24.06.2006 00:07
Хм... выход есть такой - передаеш список чисел переменной @type. Далее пишеш одну нехитрую функцию, которая понадобится и очень часто в дальнейшем :
Create FUNCTION dbo.f_StrToTable (@strID varchar(5000) )
RETURNS @Table table(id int) AS
BEGIN
declare @tmp varchar (5000)
declare @result varchar(1024)
declare @n int
declare @pos int
---------------------
set @n=1
set @pos=1
while @n<=len(@strid)
begin
set @tmp=substring(@strid, @n, 1)
if @tmp=',' -- or @n=len(@strid)
begin
set @result=substring(@strid,@POS, @n-@POS)
insert into @Table(id)
values(CONVERT(VARCHAR(32),@result) )
SET @pos=@n+1
end
if @n=len(@strid)
begin
set @result=substring(@strid,@POS, @n-@POS+1)
insert into @Table(id)
values(CONVERT(VARCHAR(32),@result) )
end
set @n=@n+1

end
return
END

а далее условие в запросе делаеш таким способом :
where
id_typearea IN (select * акщь dbo.f_StrToTable (@type) )

Воть.

Короче суть понятна, зделаеш все так как нада - будет работать 100%. Пооверено.
Пы.Сы. Переменная @type должна быть типа варчар, и подумай как передать ей список нужных значений с розделителями ",".
Автор: JonyBes
Дата сообщения: 26.06.2006 17:11
Solnake
Спасибо за помощь, но
функция работает если задаешь одно число, типа
if ComboBoxSity.ItemIndex = 1 then
dm.StoredProcSityTip.Parameters.ParamByName('@type').Value:= '7';
Если серию то вываливается в ошибку что не так?
if ComboBoxSity.ItemIndex = 0 then
dm.StoredProckray.Parameters.ParamByName('@type').Value:= '7,11,58,46,54,52';
Автор: Solnake
Дата сообщения: 27.06.2006 08:16
Хм... странно.
у меня именно так и работает....
Обьявляеш например
@answid varchar(5000)
а далее
where
answid in ( select id from [dbo].f_strToTable(@answid))

Проверь ещё раз так-ли...
Если снова выдает ошибку - напиши какую.
пропробуй запустить процедуру из QA методом
exec <процедура> <параметр1>,<параметр2>...<параметр н>
Если выполнит без ошибок - значит ошибка в передаче параметров в Делфе, наскока я понял.
если выплюнет ошибку - пиши сюда какую, бум думать.

Но должно работать, у себя толькочто проверял.
Автор: JonyBes
Дата сообщения: 27.06.2006 12:20
Из QA пускается нормально - буду ковырять дельфю!
Автор: Solnake
Дата сообщения: 27.06.2006 15:02
А что из делфы пишет?
Автор: TeaDrinker
Дата сообщения: 24.07.2006 18:35
Вопрос к тем, кто скачал и установил SQL Server 2005 русский (триал или нет - не важно):

изменились ли следующие файлы по сравнению с английской версией:

имя размер CRC32
noiseRUS.txt 83986 d78091fb
rusdict.lex 2078660 f75c00a3
ruslr.dll 423224 d4db475a
tsRUS.xml 1142 98bdaab0

это полнотекстовый поиск на русском.

Страницы: 1234567891011121314151617181920212223242526272829

Предыдущая тема: Генератор 10-ти разрядных ключей


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.