Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 xp_getfiledetails  [new]
zsv
Member

Откуда:
Сообщений: 91
Подскажите, чем мне в SQL2005 заменить хранимую проц. xp_getfiledetails, которая была в 2000.
И второй вопрос связанный с этим. Как в своей хранимой проц узнать какой сервер 2000 или 2005.
Спасибо.
25 мар 09, 18:41    [6975379]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
SERVERPROPERTY ('ProductVersion')
25 мар 09, 18:57    [6975445]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
zsv
Member

Откуда:
Сообщений: 91
за serverproperty спасибо, а чем все-таки заменить процедуру? мне надо получать атрибуты файлов.
26 мар 09, 10:11    [6976808]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
Glory
Member

Откуда:
Сообщений: 104760
zsv
за serverproperty спасибо, а чем все-таки заменить процедуру? мне надо получать атрибуты файлов.

Написать свою CLR процедуру
26 мар 09, 10:15    [6976825]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
zsv
Member

Откуда:
Сообщений: 91
Glory
zsv
за serverproperty спасибо, а чем все-таки заменить процедуру? мне надо получать атрибуты файлов.

Написать свою CLR процедуру

Обьясните пожал. подробнее, что такое CLR процедура...
26 мар 09, 10:27    [6976889]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
Glory
Member

Откуда:
Сообщений: 104760
zsv
Glory
zsv
за serverproperty спасибо, а чем все-таки заменить процедуру? мне надо получать атрибуты файлов.

Написать свою CLR процедуру

Обьясните пожал. подробнее, что такое CLR процедура...

BOL - Overview of CLR Integration

The common language runtime (CLR) is the heart of the Microsoft .NET Framework and provides the execution environment for all .NET Framework code. Code that runs within the CLR is referred to as managed code. The CLR provides various functions and services required for program execution, including just-in-time (JIT) compilation, allocating and managing memory, enforcing type safety, exception handling, thread management, and security. See the .NET Framework SDK for more information.

With the CLR hosted in Microsoft SQL Server (called CLR integration), you can author stored procedures, triggers, user-defined functions, user-defined types, and user-defined aggregates in managed code. Because managed code compiles to native code prior to execution, you can achieve significant performance increases in some scenarios.

Managed code uses Code Access Security (CAS) to prevent assemblies from performing certain operations. SQL Server 2005 uses CAS to help secure the managed code and prevent compromise of the operating system or database server.
26 мар 09, 10:44    [6977031]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
zsv
Member

Откуда:
Сообщений: 91
а в системных процедурах ничего похожего нет?
26 мар 09, 10:54    [6977131]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
Glory
Member

Откуда:
Сообщений: 104760
zsv
а в системных процедурах ничего похожего нет?

Один раз вы уже наступили на грабли, использовав недокументированную процедуру
26 мар 09, 10:56    [6977138]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
zsv
Member

Откуда:
Сообщений: 91
Glory
zsv
а в системных процедурах ничего похожего нет?

Один раз вы уже наступили на грабли, использовав недокументированную процедуру


Ну да... Хотя казалось бы вполне востребованна была бы возможность работы с файлами и папками средствами SQLя. Странно, почему это не реализовано. И почему избавились от той процедуры...
26 мар 09, 11:05    [6977231]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5189
zsv
за serverproperty спасибо, а чем все-таки заменить процедуру? мне надо получать атрибуты файлов.


написать свою
используя вот эту процу как шаблон

CREATE PROCEDURE sp_diskspace
AS
SET NOCOUNT ON
DECLARE @hr int
DECLARE @fso int
DECLARE @drive char(1)
DECLARE @odrive int
DECLARE @TotalSize varchar(20)
DECLARE @MB bigint ; SET @MB = 1048576
CREATE TABLE #drives (ServerName varchar(15),
drive char(1) PRIMARY KEY,
FreeSpace int NULL,
TotalSize int NULL,
FreespaceTimestamp DATETIME NULL)
INSERT #drives(drive,FreeSpace)
EXEC master.dbo.xp_fixeddrives
EXEC @hr=sp_OACreate 'Scripting.FileSystemObject',@fso OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
DECLARE dcur CURSOR LOCAL FAST_FORWARD
FOR SELECT drive from #drives
ORDER by drive
OPEN dcur
FETCH NEXT FROM dcur INTO @drive
WHILE @@FETCH_STATUS=0
BEGIN
EXEC @hr = sp_OAMethod @fso,'GetDrive', @odrive OUT, @drive
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
EXEC @hr = sp_OAGetProperty @odrive,'TotalSize', @TotalSize OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @odrive
UPDATE #drives
SET TotalSize=@TotalSize/@MB, ServerName = host_name(), FreespaceTimestamp = (GETDATE())
WHERE drive=@drive
FETCH NEXT FROM dcur INTO @drive
END
CLOSE dcur
DEALLOCATE dcur
EXEC @hr=sp_OADestroy @fso
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
SELECT ServerName,
drive,
TotalSize as 'Total(MB)',
FreeSpace as 'Free(MB)',
CAST((FreeSpace/(TotalSize*1.0))*100.0 as int) as 'Free(%)',
FreespaceTimestamp
FROM #drives
ORDER BY drive
DROP TABLE #drives
RETURN
GO

и вот эту инфу
тынц
26 мар 09, 11:17    [6977326]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
Богдан Гоцкий
Member

Откуда: Львов
Сообщений: 504
xp_cmdshell + attrib
26 мар 09, 11:28    [6977404]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
zsv
Member

Откуда:
Сообщений: 91
Богдан Гоцкий
xp_cmdshell + attrib

это не подходит, мне надо даты создания и размеры... как вариант можно xp_cmdshell +dir (я так делал ранее), но я столкнуля с тем что на разных осях и с разными сист. установками вывод идет по-разному, потом все это надо анализировать. короче некрасиво...
26 мар 09, 11:40    [6977489]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
zsv
Member

Откуда:
Сообщений: 91
Подключил DLL-ку с 2000, содержащую данную процедуру, к 2005.
При выполнении проц выругалось:

Сообщение 17750, уровень 16, состояние 0, процедура xp_getfiledetails, строка 1
Could not load the DLL D:\Protocol\Protocol\xpstar.dll, or one of the DLLs it references. Reason: 193(%1 не является приложением Win32.).

Что бы это значило?
26 мар 09, 13:04    [6978263]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
zsv
Member

Откуда:
Сообщений: 91
to komrad
спасибо, сделал как ты посоветовал...
26 мар 09, 19:14    [6981240]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8675
А кому как удобнее работать с файлами в 2008-м SQL-Server?
Появилось ли что-то более удобное по сравнению с 2005-м?
Суть проблемы - заказчик иногда требует хранить контент (картинки, текст и проч. мурА,- немного, правда) в базе. Оставим на его совести данное решение, но мне бы хотелось понять, как удобнее манипулировать файлами и куда копать на стади подготовки ТЗ.

Заранее спасибо!
10 авг 09, 15:27    [7518081]     Ответить | Цитировать Сообщить модератору
 Re: xp_getfiledetails  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36808
Filestream - не оно?
10 авг 09, 15:30    [7518108]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить