首页 技术 正文
技术 2022年11月18日
0 收藏 833 点赞 2,864 浏览 4983 个字

首先要设置java_stored_procedure 为yes  该配置项在cubrid.conf中

书写并编译java代码

public class SpCubrid{

     public static String HelloCubrid() {         return "Hello, Cubrid !!";     }     public static int SpInt(int i) {         return i + 1;     }     public static void outTest(String[] o) {         o0 = "Hello, CUBRID";     } } %javac SpCubrid.java加载java到数据库 % loadjava demodb 在数据库中发布java方法create function hello() return string

as language javaname 'SpCubrid.HelloCubrid() return java.lang.String'; 在net中调用

23 call Hello() into :HELLO;call Sp_int(3) into :i;call phone_info('Tom','016-111-1111');

下面看个完整的代码

创建java方法

 

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 using CUBRID.Data.CUBRIDClient;   namespace Sample {     class ProcedureSample     {         /* conection string */         /* Please modify before using. */         static readonly string _connString = "server=127.0.0.1;database=demodb;port=33000;user=public;password=";                   /*         * create a new java stored function         */        public void create_function()        {            using (CUBRIDConnection conn = new CUBRIDConnection())            {                conn.ConnectionString = ProcedureSample._connString;                conn.Open();                 string sql = "CREATE FUNCTION unit_hello(a int) RETURN int AS LANGUAGE JAVA NAME " +                    "'SpCubrid.SpInt(int) return java.lang.Integer;'";                using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn))                {                    cmd.ExecuteNonQuery();                }            }        }         /*         * create a new java stored procedure         */        public void create_procedure()        {            using (CUBRIDConnection conn = new CUBRIDConnection())            {                conn.ConnectionString = ProcedureSample._connString;                conn.Open();                  string sql = "create PROCEDURE UNIT_PHONE_INFO(name varchar, phoneno varchar)" +                             "as language java name 'SpCubrid.AddPhone(java.lang.String,java.lang.String)';";                using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn))                {                    cmd.ExecuteNonQuery();                }            }        }     } }

调用

using System.Data;

using CUBRID.Data.CUBRIDClient; namespace Sample{    class ProcedureSample    {        /* conection string */        /* Please modify before using. */        static readonly string _connString = "server=127.0.0.1;database=demodb;port=33000;user=public;password=";         /*         * call procedure         */        public void call_procedure()        {            using (CUBRIDConnection conn = new CUBRIDConnection())            {                conn.ConnectionString = ProcedureSample._connString;                conn.Open();                 string sql = "CALL UNIT_PHONE_INFO('Tom', '03556315315');";                using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn))                {                    cmd.ExecuteNonQuery();                }            }        }         /*         * call function, the function has a return value         */        public void call_function()        {            using (CUBRIDConnection conn = new CUBRIDConnection())            {                conn.ConnectionString = ProcedureSample._connString;                conn.Open();                 string sql = "? = CALL unit_hello(10)";                using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn))                {                    cmd.CommandType = CommandType.StoredProcedure;                     CUBRIDParameter p1 = new CUBRIDParameter("?p1", CUBRIDDataType.CCI_U_TYPE_INT);                    p1.Direction = ParameterDirection.Output;   // output                    cmd.Parameters.Add(p1);                     cmd.ExecuteNonQuery();                     // do something with p1.value                }            }        }    }}

删除

using CUBRID.Data.CUBRIDClient;

 namespace Sample{    class ProcedureSample    {        /* conection string */        /* Please modify before using. */        static readonly string _connString = "server=127.0.0.1;database=demodb;port=33000;user=public;password=";         /*         * drop java stored function         */        public void drop_function()        {            using (CUBRIDConnection conn = new CUBRIDConnection())            {                conn.ConnectionString = ProcedureSample._connString;                conn.Open();                 string sql = "drop function unit_hello";                using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn))                {                    cmd.ExecuteNonQuery();                }            }        }         /*         * drop java stored procedure         */        public void drop_procedure()        {            using (CUBRIDConnection conn = new CUBRIDConnection())            {                conn.ConnectionString = ProcedureSample._connString;                conn.Open();                 string sql = "DROP PROCEDURE UNIT_PHONE_INF";                using (CUBRIDCommand cmd = new CUBRIDCommand(sql, conn))                {                    cmd.ExecuteNonQuery();                }            }        }    }}                   

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,493
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295