返回首页

gbase数据、南大通用产品文档:GBase8a通过GBase ADONET 创建存储过程

更新日期:2024年09月11日

GBase 数据库中的存储过程可以通过GBase ADO.NET 直接创建,使用
GBaseCommand 对象的ExecuteNonQuery 方法。
下面是创建存储过程的步骤:
1) 使用GBaseConnection 创建数据库连接对象
2) 使用GBaseCommand 创建命令对象
3) 使用连接对象打开连接
4) 设置命令对象的CommandText 属性,指明创建存储过程语句,并关联

GBase 8a 程序员手册ADO.NET 篇


- 22 -

南大通用数据技术股份有限公司
连接对象;
5) 执行命令对象的ExecuteNonQuery 完成创建;
6) 关闭数据库连接
下面的示例是使用GBaseCommand 对象创建存储过程的完整过程。
C# 示例:
using System.Linq;
using System.Text;
using System.Data;
using GBase.Data;
using GBase.Data.GBaseClient;
using System.Diagnostics;
using System.Collections.Generic;

namespace UsingStoredRoutines
{
class Program
{
static void Main(string[] args)
{
GBaseConnection _Conn = new GBaseConnection();
_Conn.ConnectionString =
"server=192.168.5.41;user=root;database=test;password=1;pooling=fals
e";
GBaseCommand _Cmd = new GBaseCommand();
try
{
Console.WriteLine("Connecting to GBase...");
_Conn.Open();
_Cmd.Connection = _Conn;
_Cmd.CommandText = "DROP PROCEDURE IF EXISTS
add_emp";
_Cmd.ExecuteNonQuery();



GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司

- 23 -
_Cmd.CommandText = "DROP TABLE IF EXISTS emp";
_Cmd.ExecuteNonQuery();
_Cmd.CommandText
=
"CREATE
TABLE
emp
(empno
INT
NOT
NULL AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(20), last_name
VARCHAR(20), birthdate DATE)";
_Cmd.ExecuteNonQuery();
_Cmd.CommandText = "CREATE PROCEDURE add_emp(" +
"IN
fname
VARCHAR(20),
IN
lname
VARCHAR(20),
IN
bday
DATETIME, OUT empno INT)" +
"BEGIN INSERT INTO emp(first_name, last_name,
birthdate) " +
"VALUES(fname, lname, DATE(bday)); SET empno =
LAST_INSERT_ID(); END";
_Cmd.ExecuteNonQuery();
}
catch (GBaseException ex)
{
Console.WriteLine("Error " + ex.Number + " has
occurred: " + ex.Message);
}
finally
{
if (_Conn != null)
_Conn.Close();
Console.WriteLine("Connection closed.");
}
}
}
}

确保数据目录正确,以及相应数据目录下的pg_control 文件存在。

参数说明:设置读取数据时是否忽略校验信息检查失败(但仍然会告警),继续执行可
能导致崩溃,传播或隐藏损坏数据,
无法从远程节点恢复数据及其他严重问题。不建议用户

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1361
修改设置。
该参数属于SUSET 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:布尔型

on 表示忽略数据校验错误。

off 表示数据校验错误正常报错。
默认值:off