首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Informix for ORM框架中的串行字段

Informix for ORM框架中的串行字段
EN

Stack Overflow用户
提问于 2013-03-15 00:13:32
回答 1查看 434关注 0票数 1

我们使用Informix (SE)的一个非常旧的版本。我正在尝试用C#创建一个ORM型框架来处理CRUD过程。我很难想出一种方法来处理包含序列字段的表。

基本上,我希望以某种方式创建一个唯一的值,当我插入一条记录时,我可以合理地确定它仍然是唯一的,或者至少获得我刚刚插入的记录的值。如果多个用户同时使用该表,则必须这样做(因此这是一个数据库范围的方案)。

我知道较新的版本有可以设置的“序列”对象,但SE没有。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-15 13:24:38

仅供参考:Informix ODBC驱动程序和.NET驱动程序不正式支持SE;但它仍然可以工作。我对SE的了解也是有限的;下面列出的信息可能与IDS比SE更相关。

您正在尝试的驱动程序是用于ODBC的Informix框架数据提供程序;它不能很好地处理串行数据类型。Informix .NET Provider支持中的串行,但该驱动程序从未针对SE进行过测试。如果你愿意冒险,那么成功的机会可能会更高。

我不认为你必须使用任何复杂的算法来使序列值在服务器上是唯一的。下面的示例将更好地解释这一点。

代码语言:javascript
复制
    CREATE TABLE tab ( c1 SERIAL );
    INSERT INTO tab VALUES ( 0 ); 
    INSERT INTO tab VALUES ( 4 );  
    INSERT INTO tab VALUES ( 0 ); 
    INSERT INTO tab VALUES ( 3 ); 
    INSERT INTO tab VALUES ( 3 );
    INSERT INTO tab VALUES ( 0 ); 
    SELECT * FROM tab;

     1
     4
     5
     3
     3
     6


DROP TABLE tab;
CREATE TABLE tab ( c1 INT, c2 SERIAL PRIMARY KEY );
INSERT INTO tab VALUES ( 11, 0 );
INSERT INTO tab VALUES ( 12, 0 );
INSERT INTO tab VALUES ( 13, 0 );
INSERT INTO tab VALUES ( 14, 0 );
INSERT INTO tab VALUES ( 15, 0 );
SELECT * FROM TAB;

c1          c2

11           1
12           2
13           3
14           4
15           5

如果您正在尝试获取在客户端生成的串行类型值,如添加到DataTable等的条目,则DataColumn上的以下属性可能很有用:AutoIncrement,AutoIncrementStep,AutoIncrementSeed.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15414546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档