返回首页

gbase数据、南大通用产品文档:GBase8a设置连接池初始化大小

更新日期:2024年09月11日

如果需要在连接初始时让连接池自动创建一定数量的连接,可以通过设置
POOL_INIT_SIZE 的值来实现。通常POOL_INIT_SIZE 的值小于等于
POOL_MAX_IDLE。如下所示:
"DRIVER=GBase 8a ODBC 8.3 Driver;UID=gbase;PWD=gbase20110531;"
"SERVER={192.168.111.96;192.168.5.212;192.168.7.174;192.168.7.17
3};"
"GCLUSTER_ID=gcluster;
POOL_MAX_ACTIVE_SIZE=80;POOL_MAX_IDLE=60;"
"POOL_INIT_SIZE=10;"

可用使用以下方法移除 UDR:
public void removeUDR(String sqlname) throws SQLException
public void removeJar(String jarfilesqlname, int undeploy) throws
SQLException
提示: removeUDR() 方法从服务器移除 UDR 但是不移除 JAR 文件,因为其它不透明类型或
UDR 会使用相同的 JAR 文件。
removeJar() 方法在移除不透明类型和 JAR 文件中有所描述。
移除重载的 UDRs
要移除重载的 UDR,请使用具有附加参数的 removeUDR() 方法:
public void removeUDR(String sqlname, Class[] methodparams) throws
SQLException
methodparams 参数指定 UDR 中每个参数的数据类型。
指定 NULL 指示没有参数。
例如,
假设一个名为 print() 的 UDR 被重载了两个额外的方法签名。
Java™ 方法签名
对应的 SQL 名
void print()
print1
void print(String x, String y,
int r)
print2
void print(int a, int b)
print3
移除所有三个 UDR 的代码为:
udrmgr.removeUDR("print1", null );
udrmgr.removeUDR("print2",
new Class[] {String.class, String.class, int.class} );
udrmgr.removeUDR("print3", new Class[] {int.class, int.class} );

ifx_int8mul() 函数将两个 int8 类型值相乘。
语法

mint ifx_int8mul(n1, n2, product)
ifx_int8_t *n1;
ifx_int8_t *n2;
ifx_int8_t *product;
n1
指向包含第一个操作对象的 int8 结构的指针。
n2
指向包含第二个操作对象的 int8 结构的指针。
product
指向包含 n1 * n2 的乘积的 int8 结构的指针。

用法
product 可与 n1 或 n2 相同。

返回代码
0
运算成功。
-1284
运算导致溢出或下溢。

示例
demo 目录中的文件 int8mul.ec 包含下列样例程序。
/*
* ifx_int8mul.ec *

The following program multiplies two INT8 numbers and

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 742 -
displays the result.
*/

#include

EXEC SQL include "int8.h";

char string1[] = "480,999,777,666,345";
char string2[] = "80";
char result[41];

main()
{
mint x;
ifx_int8_t num1, num2, prd;

printf("IFX_INT8MUL Sample ESQL Program running.\n\n");

if (x = ifx_int8cvasc(string1, strlen(string1), &num1))
{
printf("Error %d in converting string1 to INT8\n", x);
exit(1);
}
if (x = ifx_int8cvasc(string2, strlen(string2), &num2))
{
printf("Error %d in converting string2 to INT8\n", x);
exit(1);
}
if (x = ifx_int8mul(&num1, &num2, &prd))
{
printf("Error %d in multiplying num1 by num2\n", x);
exit(1);
}

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 743 -
if (x = ifx_int8soasc(&prd, result, sizeof(result)))
{
printf("Error %d in converting product to string\n", x);
exit(1);
}
result[40] = '\0';
printf("\t%s * %s = %s\n", string1, string2, result);

printf("\nIFX_INT8MUL Sample Program over.\n\n");
exit(0);
}
输出
IFX_INT8MUL Sample ESQL Program running.

480,999,777,666,345 * 80 = 38479982213307600

IFX_INT8MUL Sample Program over.