返回首页

gbase数据、南大通用产品文档:GBase8s

更新日期:2024年09月11日


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 653 -

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

The following program rounds a DECIMAL type number six times and displays the result
of each operation. */
#include

EXEC SQL include decimal;

char string[] = "-12345.038572";
char result[41];

main()
{
mint x;
mint i = 6; /* number of decimal places to start with */
dec_t num1;

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

printf("String = %s\n", string);
while(i)
{
if (x = deccvasc(string, strlen(string), &num1))
{
printf("Error %d in converting string to DECIMAL\n", x);
break;
}
decround(&num1, i);
if (x = dectoasc(&num1, result, sizeof(result), -1))

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 654 -
{
printf("Error %d in converting result to string\n", x);
break;
}
result[40] = '\0';
printf(" Rounded to %d Fractional Digits: %s\n", i--, result);
}
printf("\nDECROUND Sample Program over.\n\n");
}
输出
DECROUND Sample ESQL Program running.

String = -12345.038572
Rounded to 6 Fractional Digits: -12345.038572
Rounded to 5 Fractional Digits: -12345.03857
Rounded to 4 Fractional Digits: -12345.0386
Rounded to 3 Fractional Digits: -12345.039
Rounded to 2 Fractional Digits: -12345.04
Rounded to 1 Fractional Digits: -12345.

DECROUND Sample Program over.

位置:INFORMIXSQLHOSTS 环境变量指定
参数:对于每一个数据库实例,添加一行配置信息,格式为:
Server-name protocol IP-address Port-name
Server-name:数据服务的实例名
protocol:连接使用的协议,取值为onsoctcp
IP-address:服务器IP 地址
Port-name:/etc/services 中Server-name 对应的端口号

3 类型

byfill() 函数以一个字符填充指定的区域。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 616 -


语法
void byfill(to, length, ch)
char *to;
mint length;
char ch;
to
指向您想要 byfill() 填充的内存区域的第一个字节的指针。
length
您想要 byfill() 在该区域内重复该字符的次数。
ch
您想要 byfill() 用于填充该区域的字符。
重要: 请注意,不要重写您想要 byfill() 填充的区域相邻的内存区域。

示例

此样例程序位于 demo 目录中的 byfill.ec 文件中。
/*
* byfill.ec *

The following program shows the results of three byfill() operations on an area that is
initialized to x's.
*/

#include

main()
{
static char area[20] = "xxxxxxxxxxxxxxxxxxx";

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

printf("String = %s\n", area);

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 617 -


printf("\nFilling string with five 's' characters:\n");
byfill(area, 5, 's');
printf("Result = %s\n", area);

printf("\nFilling string with two 's' characters starting at ");
printf("position 16:\n");
byfill(&area[16], 2, 's');
printf("Result = %s\n", area);

printf("Filling entire string with 'b' characters:\n");
byfill(area, sizeof(area)-1, 'b');
printf("Result = %s\n", area);

printf("\nBYFILL Sample Program over.\n\n");
}
输出
BYFILL Sample ESQL Program running.

String = xxxxxxxxxxxxxxxxxxx

Filling string with five 's' characters:
Result = sssssxxxxxxxxxxxxxx

Filling string with two 's' characters starting at position 16:
Result = sssssxxxxxxxxxxxssx

Filling entire string with 'b' characters:
Result = bbbbbbbbbbbbbbbbbbb

BYFILL Sample Program over.