|
|
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Здаствуйте!! Пробую так: CREATE PROCEDURE "DBA"."GetVolumeInformatio"( in lpRootPathName char(256), inout lpVolumeNameBuffer char(256), in nVolumeNameSize unsigned bigint, inout lpVolumeSerialNumber unsigned bigint, inout lpMaximumComponentLength unsigned bigint, inout lpFileSystemFlags unsigned bigint, inout lpFileSystemNameBuffer char(256), in nFileSystemNameSize unsigned bigint ) result(@res bit) external name 'GetVolumeInformationA@kernel32.dll' При вызове процедуры выдает ошибку: "Expression has unsupported data type" SQLCODE = - 624 Может кто-то подскажет в чем ошибка или как можно по другому?? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 12:47 |
|
||
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Dimas_Verbatim, а рвзве в ASA есть такое unsigned bigint по-моему только bigint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 14:58 |
|
||
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Sergey Orlov, Есть! BIGINT data type [Numeric] -------------------------------------------------------------------------------- Function Integer requiring 8 bytes of storage. Syntax [ UNSIGNED ] BIGINT Usage The BIGINT data type is an exact numeric data type: its accuracy is preserved after arithmetic operations. A BIGINT value requires 8 bytes of storage. The range for signed BIGINT values is -263 to 263 - 1, or -9223372036854775808 to 9223372036854775807. The range for unsigned BIGINT values is 0 to 264 - 1, or 0 to 18446744073709551615. By default, the data type is signed. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 15:28 |
|
||
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Dimas_Verbatim, Кстати, а как на тему bit Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 16:19 |
|
||
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Sergey Orlov, С типами игрался и ни какого результата та же ошибка! Возможно эту функцию не возможно вызвать из SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 16:46 |
|
||
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Dimas_Verbatim, Да работало на 8-ке у меня нечто подобное, да и еще кроме процедуры есть еще и функции т.е. попробуй create function () RETURNS int EXTERNAL NAME '....@kernel32.dll' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 17:59 |
|
||
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Sergey Orlov, Так в функциях же нет INOUT! Как я получу результат? ели он у меня записывается в lpVolumeNameBuffer! Вот пример обявления в PB Function boolean GetVolumeInformation (string lpRootPathName, ref string lpVolumeNameBuffer, ulong nVolumeNameSize, ref ulong lpVolumeSerialNumber, ref ulong lpMaximumComponentLength, ref ulong lpFileSystemFlags, ref string lpFileSystemNameBuffer, ulong nFileSystemNameSize) Library "KERNEL32.DLL" Alias for "GetVolumeInformationA" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 18:07 |
|
||
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Dimas_Verbatim, Да какая разница, ты попробуй сначало обьявить ее как я тебе предложил, затем сказать set mparm=000, затем set nerror = GetVolumeInformatio(....,mparm,...) и посмотреть результат, что утебя будет в nerror и mparm, Да и еще, если будешь писать ее как процедуру, то точно не надо писать result(@res bit)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 18:34 |
|
||
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Sergey Orlov, Да и вот, что еще, попробуй написать свою функцию с оформлением в dll, которая из всех параметров будет возвращать только нужное тебе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 18:42 |
|
||
|
Как узнать серийник винта?
|
|||
|---|---|---|---|
|
#18+
Sergey OrlovDimas_Verbatim, Да какая разница, ты попробуй сначало обьявить ее как я тебе предложил, затем сказать set mparm=000, затем set nerror = GetVolumeInformatio(....,mparm,...) и посмотреть результат, что утебя будет в nerror и mparm, Да и еще, если будешь писать ее как процедуру, то точно не надо писать result(@res bit)... Тест не удался, с функцией таже ошибка! (((( Сейчас пытаюсь написать dll, но в с++ я не очень! ((( Сижу ковыряю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2009, 18:54 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=39&tid=2011083]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 16ms |
| total: | 147ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...