|
Битовые операции
|
|||
---|---|---|---|
#18+
Народ, правильно ли я понял, что в DB2 их нет. Если да, то кто нить может сказать почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2003, 11:05 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
Зато есть механизм для их создания. UDF. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2003, 11:53 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
Вообще-то можно и без UDF, пользуясь делением, остатком от деления (MOD) и умножением. Например, сдвиг вправо на 1 все равно как деление на 2. Лично я считаю, что пользователи битовых операций (вроде ТАИС'а, что в Сирене запихнул при их (битовых операций) помощи три поля в одно) - [censored]. Усложнять себе и другим (в том числе оптимизатору) ради неизвестно чего - грошовой экономии дискового пространства? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2003, 13:08 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
2Alexey Popov a mogno pokonkretnee kak imenno eto ydelat\ ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2003, 18:47 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
Можно. Но до сих пор я писал только под Win32 на Delphi :) 1. Создаешь DLL с нужной экспортируемой функцией. Ex: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Val1_Null & Val2_Null - индикаторы на передаваемые NULL - значения в UDF. Result_Null - признак возвращаемого результата = NULL. Подробнее можно посмотреть в Application Development Guide . 2. Затем копируешь DLL в [$SQLLIB]\function 3. Для БД пишешь CREATE FUNCTION... См. SQL Reference ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 09:41 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
Da mne pod linux nado a chto na C UDF napisat\ nelsya? ved\ mogno no ya neynayu kak? ya tut nashol primerchik no ne znayu horosh li on ocenite pogaluysta Код: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 11:49 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
это полхой примерчик :) ----------- blablabla.cpp ----------------- extern "C" int or (int a, int b) { return a|b;} extern "C" int and (int a, int b) {...} ............................................... ---------------------------------------- gcc -share blablabla.cpp (вроде так забыл уже все ключики в линуксе ----------- SQL ------------------------ create function myor( int, int) returns integer ... language c parameter style general external name 'blablabla.so!or' ........... ------------------------------------------ ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 12:58 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
Spasibo budem smotret' i probyvat' ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 13:00 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
>gcc -share blablabla.cpp g++ -share blablabla.cpp ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 13:07 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
Okram, выкинь мой пример. возврат результата из ф-ции осуществл. немножко по другому. /* CREATE FUNCTION OR(INT,INT) RETURNS INT LANGUAGE C EXTERNAL NAME ' ' DETERMINISTIC NO SQL NO EXTERNAL ACTION PARAMETER STYLE SQL ALLOW PARALLEL; */ void OR(int *a,int *b,int *out,short *inind, short *outind,char *sqlstate,char *funcname,char *msgtext); p.s. и што это со мной сегодня происходит... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 13:29 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
Teper' ya uge sovsem zaputalsya Nu tak chto i gde pisat' i kompilit' ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 13:41 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
ф-ция на с немного другая. сишник extern "C" void or(int *a, int *b, int *out, short *inind, short *outind); { *outind = -1; if(0>=inind[0] || 0>=inind ) return; *out = (*a)|(*b); *outind = 1; } и парамер стайл должен быть генерал with nulls ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 14:09 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
ф-ция на с немного другая. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
там все съехало ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 14:11 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
delayu gcc or.c i cho poluchayu or.c:3: error: parse error before string constant or.c:10: error: `a' undeclared here (not in a function) or.c:10: error: `b' undeclared here (not in a function) or.c:10: warning: data definition has no type or storage class or.c:12: warning: initialization makes pointer from integer without a cast or.c:12: warning: data definition has no type or storage class or.c:14: error: parse error before '}' token or.c:14:2: warning: no newline at end of file ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 14:43 |
|
Битовые операции
|
|||
---|---|---|---|
#18+
либо g++ -share or.c либо снеси строку ' extern "C" ' и gсс -share or.c ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2003, 14:53 |
|
|
start [/forum/topic.php?fid=43&msg=32273804&tid=1606475]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
96ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 357ms |
total: | 530ms |
0 / 0 |