当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 其实AutoInc字段很有价值,它提供了一个没有意义的唯一ID,在很多场合都需要。
 

 

    摘要:今日开发遇到一个错误:delphi 7.1。使用ado连接sql server,book_adoquery有一个lookup字段,每当insert/append的时候ide就会弹出一个错误:an unknown error has occurred -- eoleexception跟踪发现错误来源于vcl locaterecord方法的flookupcursor.findfunction tcus......
 ·codecolor相关(一) 背景     »显示摘要«
    摘要:? 第一部分:背景 一、本人背景 专业:土木工程;工作:空军某场站战勤参谋;在工作中使用计算机主要是文本编辑,编程序纯属个人爱好,业余中的业余编程爱好者,由于水平实在有限,此次公开代码着实下了好大一番决心 。 二、程序背景 到 csdn 的 blog 浏览时,发现大部分源码添加进网页后格式都丢失了,再加上没有语法着色,看起来比较困难。偶尔发现有的网页中显示的代码和在 ide 中的效果一样,......


Delphi连接关系数据库,不支持自动获取自增型字段的新值, 最好不用数据库的AutoInc字段,而是手工提供

其实autoinc字段很有价值,它提供了一个没有意义的唯一id,在很多场合都需要.

(注意,通常的物料代码,身份证号,卡号等等现实属性都有意义,可能需要修改,不能用来做主键!最好采用无意义主键) 【程序编程相关:一个简单的,适应多种数据库之间存取操作的

【推荐阅读:如何判断一个机器的MSSQL是否启动

【扩展信息:双对象列表,双字符串列表

但是delphi用ado(dbexpress我没有试过)连接关系数据库,在insert/apend post后,autoinc字段的值总为0(连access可以获得新值),这样在界面上不好看,而且不能刷新数据集,会出错,因为它与数据库不一致.

特别是需要主从关系的情况下,这样无法插入子表记录.若你真要这样,可以看john kaster

的一篇文章:how to use autoinc fields with datasnap

而且ms sql的autoinc字段有两种选择:复制的时候自增,复制的时候不自增.

我希望delphi有个开关,可以让开发者选择在post后立即用select @@identity 来填充新值.

但目前还不行,所以只有不用数据库提供的autoinc字段,自己写了.

一般一个数据库中会有多个autoinc id字段.

建一个表autoincid

两个字段:

idname varchar(16)   --  主键,存放其他各表autoinc id字段的字段名

 idvalue int         -- 当前id 值, 初始化为0

获取当前的某个autoinc字段的 id值

 


...   下一页
    摘要:原理见http://202.38.73.222/~pjf/blog/archives/000040.html 代码如下: ============form1.dfm============== object form1: tform1 left = 192 top = 107 width = 396 height = 261 caption = form1 color......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE