Informix z Javą
- Świetny help z IBM - należy zrobić nastepujące rzeczy:
- Stworzyć plik w javie - jako klasę statyczną np: public static int explosiveReaction(int ingredient);
- Powstanie wtedy klasa np Courses w pliku jar: - /students/data/Courses.jar
- Należy ją zainstalować w bieżącej bazie -
EXECUTE PROCEDURE sqlj.install_jar("file://students/data/Courses.jar", "course_jar")
Inne polecenia to: sql.remove_jar, sql.replace_jar, sql.alter_java_path
Jest jeszcze pojęcie External Routine Reference które mapuje nazwy:
EXTERNAL NAME "wskaznikDoPlikuJar.jar" LANGUAGE JAVA
Więcej o tej ostatniej:
EXECUTE PROCEDURE alter_java_path("course_jar", "(professor/*, prof_jar)"); EXECUTE FUNCTION sql_explosive_reaction(10000)
Powyższe oznacza, że będzie przeszukiwana dodatkowa biblioteka w katalogu professor w celu znalezienia pakietu prof_jar.
Dostajemy wtedy tzw. jar ID (course_jar), który może służyć jako odnośnik w UDR napisanych w javie.
Trzeci parametr pozwala na wykonanie dodatkowych funkcji (w postaci zdań SQL) np. zarejestrowanie i przydzielenia grantów (przywilejów) dla tego UDR.
Przykład wywołanie funkcji w C:
CREATE FUNCTION equal( a point, b point ) RETURNING BOOLEAN; EXTERNAL NAME "/usr/lib/point/lib/libbtype1.so(point1_equal)" LANGUAGE C END FUNCTION;
Fragment dokumentacji orginalnej:
To create a user-defined function written in the Java language
- Write a Java static method, which can use the JDBC functions to interact with the database server.
- Register the UDR with the CREATE FUNCTION statement.
Rather than storing the body of an external routine directly in the database, the database server stores only the pathname of the shared-object file that contains the compiled version of the routine. When it executes the external routine, the database server invokes the external object code.
The database server stores information about an external function in system catalog tables, including sysprocbody and sysprocauth. For more information on the system catalog, see the IBM Informix Guide to SQL: Reference.
Bardzo ciekawie wygląda opcja szyfrowania danych - http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls1024.htm - w Informixie
Brak komentarzy:
Prześlij komentarz