|
UDR на C
|
|||
---|---|---|---|
#18+
Сам я немного не "в теме", но вот заставили писать расширение для ИДС. Нашел "мануалы", если так можно назвать пол абзаца, Естественно столкнулся с проблемами. В частности, что за расширение *.so. Вопрос идиота - чем можно скомпилировать, чтобы его получить? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 12:26 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Если все таки удосужитесь назвать версию IDS (вы будете удивлены, но возможности очень сильно зависят от версии) то, возможно, сможем указать "мануалы" в которых значительно больше половины абзаца (кстати, а что это вы почитали ?) И очень желательно вначале прочитать и придерживаться этого ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 12:39 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoeСам я немного не "в теме", но вот заставили писать расширение для ИДС. Нашел "мануалы", если так можно назвать пол абзаца, Естественно столкнулся с проблемами. В частности, что за расширение *.so. Вопрос идиота - чем можно скомпилировать, чтобы его получить?а что будет делать расширение? *.so это библиотека под nix типа dll в винде ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 12:54 |
|
UDR на C
|
|||
---|---|---|---|
#18+
vasilis И очень желательно вначале прочитать и придерживаться этого Да, извиняюсь. IDS 10.0, стоит на winxp sp2. Это только для проверки. vasilis а что это вы почитали ? Например это и это Журавлев Денис а что будет делать расширение? Получает строку и флаг, на выходе строка, либо в верхнем регистре, либо в нижнем. Журавлев Денис *.so это библиотека под nix типа dll в винде Это я уже понял, теперь ищу способ как скомпилировать под ХР. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 13:54 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoe Получает строку и флаг, на выходе строка, либо в верхнем регистре, либо в нижнем. Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 14:04 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Журавлев Денис, Забыл добавить, что входящая строка может состоять из любых символов, в том числе русских. Будет ли сия функция их нормально воспринимать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 14:06 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoeЖуравлев Денис, Забыл добавить, что входящая строка может состоять из любых символов, в том числе русских. Будет ли сия функция их нормально воспринимать?если у человека создавшего базу хватило ума на DB_LOCALE=ru_ru..... то будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 14:10 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoeДопустим не хватило? (=а размер базы какой? Есть у меня ощущение что техподдержке это piece of cake. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 14:25 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Стоит en_Us База большая, менять не будут, поэтому и необходим экстеншн. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 14:36 |
|
UDR на C
|
|||
---|---|---|---|
#18+
а если так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 14:49 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Хотя все же лучше бы именно экстеншн, ибо задача была поставлена именно такая. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 15:28 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoeХотя все же лучше бы именно экстеншн, ибо задача была поставлена именно такая.ну так пишите, мы вам не мешаем. Продакшен у вас тоже под winxp? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2008, 15:33 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoevasilis И очень желательно вначале прочитать и придерживаться этого Да, извиняюсь. IDS 10.0, стоит на winxp sp2. Это только для проверки. vasilis а что это вы почитали ? Например это и это В первую очередь желательно сначала читать родную документацию. По вашей версии здесь http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp Выбираете в содержании "Developing" - "Developing Extensions to IDS" - "IBM Informix User-Defined Routines and Data Types Developer's Guide" - и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2008, 15:55 |
|
UDR на C
|
|||
---|---|---|---|
#18+
vasilis, Читали-читали. Там все это есть, но многое не понятно. Вот если кто поможет помогите понять как это сделать ibmTo create a shared-object file on Windows 1. Load the abs.o object file into the abs.so DLL:, as the following example shows: link /DLL /OUT:abs.dll /DEF:abs.def abs.obj d:\informix\lib\SAPI.LIB The preceding command uses the IBM Informix software installed on the d: drive in a directory named informix. 2. Put the DLL in a directory on which user informix has read permission and set the READONLY attribute with the attrib +r command: attrib В частности первый пункт. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2008, 13:58 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Можно ли написать обычную dll и использовать ее, если уж сервер на Windows 2003 стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2008, 16:20 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoeВот если кто поможет помогите понять как это сделать ibmTo create a shared-object file on Windows 1. Load the abs.o object file into the abs.so DLL:, as the following example shows: link /DLL /OUT:abs.dll /DEF:abs.def abs.obj d:\informix\lib\SAPI.LIB The preceding command uses the IBM Informix software installed on the d: drive in a directory named informix. В частности первый пункт. Я так понимаю, что link - это с:\Program Files\Microsoft Visual Studio N\VC\bin\link.exe А C/C++ компилятор - cl.exe оттуда-же. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2008, 02:19 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Sergey L., Да нет же, я не об этом. "Load the abs.o object file into the abs.so DLL" Вот здесь у меня разрыв подсознания. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2008, 10:52 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoeSergey L., Да нет же, я не об этом. "Load the abs.o object file into the abs.so DLL" Вот здесь у меня разрыв подсознания. А в чём разрыв то? Процесс создания UDR на С: - компилируете(наверно CL) - получаете obj - линкуете(наверно link) - получаете dll - создаете CREATE FUNCTION aaaa() ... EXTERNAL NAME 'место где лежит ваш dll' LANGUAGE C; ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2008, 12:23 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Ikir А в чём разрыв то? into the abs .so DLL Я, если что, не непроходимо тупой, а студент. Ну, вообще я кажется уже все сообразил. Единственное оставшийся открытым вопрос: код можно писать на подобии этого тупо в блокноте? Компилятор его проглотит? С dll не работал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2008, 18:40 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoe into the abs .so DLL Я, если что, не непроходимо тупой, а студент. Ну, вообще я кажется уже все сообразил. Единственное оставшийся открытым вопрос: код можно писать на подобии этого тупо в блокноте? Компилятор его проглотит? С dll не работал. "Ну мало ли в Бразилии Донов Педров", надо верить строке /OUT:abs.dll . Писать можно хоть на коленке, но в виндах, раз установлен компилятор, наверно есть красивый IDE, который будет красиво подсказывать, выделять шаблоны и прочие навороты ))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2008, 12:01 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Вообщем написал dll, даже кажется правильно. Объявил ее create function, вызываю - получаю ошибку 9793. Find Error-9793 User-defined-routine module load failed. The following error message appears in the log: ERROR: Loading Module module_name A bad external name, missing file, or wrong permissions might cause this error. Log message log_message_number contains the UNIX error number no encountered and the actual module name being used. For C language on UNIX, the following log message might appear: Error_number: C Language Module module_name can't load error_string In the error message, error_number is the current UNIX error number, module_name is the module name from the catalog, and error_string is the dlerror() explanation. Есть подозрение, что не правильно указал где лежит длл. путь: C:\Program Files\IBM\Informix\lib\testnum.dll указал EXTERNAL NAME '/Program Files/IBM/Informix/lib/testnum.dll' ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2008, 15:42 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Ну, что никто не может ничего сказать по этому поводу? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2009, 13:59 |
|
UDR на C
|
|||
---|---|---|---|
#18+
А за это время пробовали поменять EXTERNAL NAME на Виндовый вид? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2009, 15:35 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Перепробовал что только можно. С уверенностью сказать не могу. Если есть ваш вариант как стоит написать, то напишите. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2009, 16:59 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Сейчас проверил еще раз через dbaccess запустил Create Function. Похоже что создал и работает. Запускаю SELECT numbr FROM tabl WHERE exp(name)="Ivan" (соответственно без функции работает) Получаю FindError -1213 A character to numeric conversion process failed. A character value is being converted to numeric form for storage in a numeric column or variable. However, the character string cannot be interpreted as a number. It contains some characters other than white space, digits, a sign, a decimal, or the letter e; or the parts are in the wrong order, so the number cannot be deciphered. If you are using NLS, the decimal character or thousands separator might be wrong for your locale. Понять бы что эта ошибка значит. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2009, 17:49 |
|
UDR на C
|
|||
---|---|---|---|
#18+
В логе INFORMIX есть запись что он загрузил библиотеку? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2009, 18:06 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoeСейчас проверил еще раз через dbaccess запустил Create Function. Похоже что создал и работает. Запускаю SELECT numbr FROM tabl WHERE exp(name)="Ivan" (соответственно без функции работает) Получаю FindError -1213 A character to numeric conversion process failed. A character value is being converted to numeric form for storage in a numeric column or variable. However, the character string cannot be interpreted as a number. It contains some characters other than white space, digits, a sign, a decimal, or the letter e; or the parts are in the wrong order, so the number cannot be deciphered. If you are using NLS, the decimal character or thousands separator might be wrong for your locale. Понять бы что эта ошибка значит. Это означает, что вы пытаетесь взять экспоненту от Ивана. Неудивительно, что информикс ругаецца. Exp - зарезервированное слово. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2009, 19:18 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Выбегалло, Сглупил. Вот что дает лог Log20:12:00 Loading Module <c:\program> 20:12:00 (2): The C Language Module <c:\program> can't load reason: Cannot access library file 20:12:00 (-1): ERROR: Loading Module <c:\program> 20:13:17 Fuzzy Checkpoint Completed: duration was 0 seconds, 5 buffers not flushed. 20:13:17 Checkpoint loguniq 7, logpos 0x8d3ec, timestamp: 0x16b4f 20:13:17 Maximum server connections 5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2009, 20:17 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Эти сообщения появляются при вызове в запросе. Когда создаю CreateFunc ни каких логов не пишется. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2009, 20:22 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Все. Всем спасибо, разобрался - все работает. Путь надо было прописывать как C:\PROGRA~1\ и т.д. Думаю тогда потом ход действий напишу, чтобы если у кого вопросы появится было бы что. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2009, 20:27 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Столкнулся с такой проблемой. Написаная УДР после пары удачных тестовых запусков в ServerStudio появляется сообщение Executing, все немного подвисает, и выскакивает окно ошибки Error (-9791): User Defined Routine (adll) execution failed. Log15:30:48 Assert Failed: NT Exception! 15:30:48 See Also: C:\Informix\tmp\af.f557c4e 15:30:48 Assert Failed: Exception Caught. Type: MT_EX_OS, Context: mem 15:30:48 IBM Informix Dynamic Server Version 10.00.TC5 15:30:48 Who: Session(2693, informix@ras-app-2, 11096, 00000000) Thread(2925, sqlexec, 0, 1) File: mtex.c Line: 966 15:30:48 Action: Please notify IBM Informix Technical Support. 15:30:48 stack trace for pid 4884 written to C:\Informix\tmp\af.f557c4e 15:30:48 See Also: C:\Informix\tmp\af.f557c4e 15:30:53 Exception Caught. Type: MT_EX_OS, Context: mem 15:30:53 (-9791): ERROR: Routine execution trap -- procname=<adll> procid=874 reason: mem mem - Это memory fault. Но вот хочется понять какого плана эти меморифолты. Кстати старые версии, которые не выдавали ошибок, теперь так же стали ее выдавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2009, 15:28 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoeКстати старые версии, которые не выдавали ошибок, теперь так же стали ее выдавать. Из прилепленного топика "Как правильно задать вопрос на форуме Informix" (очень кратко): 6. Если "раньше работало, а теперь нет" - то постарайтесь вспомнить ВСЕ изменения в конфигурации за прошедшее время (не только в onconfig, но и в локальной сети, настройках клиента, сервера приложений, патчи, сервис паки, регламентные работы по БД и т.п.) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 11:52 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Вернулся. =) Новый вопрос: Новый УДР mi_integer itdate(mi_integer it, mi_date ddate) Вызывается например EXECUTE FUNCTION itdate(4,'01/30/2009') получаю ошибку Error (-7420): Argument (itdate(): mi_value: arg 3) is invalid. И собственно не могу понять в чем ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 15:54 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Хотелось бы увидеть - предложение CREATE FUNCTION ... - начало функции на С - установку переменных DBDATE, GL_DATE ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 17:04 |
|
UDR на C
|
|||
---|---|---|---|
#18+
IkirХотелось бы увидеть - предложение CREATE FUNCTION ... Код: plaintext 1. 2. 3. 4.
Ikir - начало функции на С Функция сейчас в принципе простоя Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Ikir - установку переменных DBDATE, GL_DATE Не знаю, что это за переменные. Сегодня попробую найти. Но думаю вы укажите на мою ошибку? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 08:42 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Так, разобрался в чем проблема. Такой вопрос - может ли сработать такая вещь select * from idt(4,"01/30/2009") ? idt будет формировать название таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 09:30 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoeТак, разобрался в чем проблема. Такой вопрос - может ли сработать такая вещь select * from idt(4,"01/30/2009") ? idt будет формировать название таблицы. http://www.sql.ru/faq/faq_topic.aspx?fid=535 Боже, таблицы на каждый день. Мама, роди меня обратно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 09:39 |
|
UDR на C
|
|||
---|---|---|---|
#18+
И всётаки странный подход к использованию UDR на С ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 14:07 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Журавлев Денис http://www.sql.ru/faq/faq_topic.aspx?fid=535 Спасибо. И как же только это пропустил. Журавлев Денис Боже, таблицы на каждый день. Мама, роди меня обратно. Ну, это как бы не ко мне. Ikir И всётаки странный подход к использованию UDR на С И это снова не ко мне - дали задание: ~ попробуй сделать динамическую выборку через удр ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 15:10 |
|
UDR на C
|
|||
---|---|---|---|
#18+
AlexKoe И это снова не ко мне - дали задание: ~ попробуй сделать динамическую выборку через удрНадо забить шуруп, сказали попробуй микроскопом. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 15:41 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Так, а что подразумевается под формирование на клиентской стороне? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2009, 12:57 |
|
UDR на C
|
|||
---|---|---|---|
#18+
Т.е. извините, не что вообще под этим понимается, а как собственно оно реализуется на клиенте? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2009, 13:03 |
|
|
start [/forum/topic.php?all=1&fid=44&tid=1607884]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
59ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 181ms |
0 / 0 |