CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  数据库及相关技术

如何获知表中某个字段的最大值?

楼主BlackSnail(粉红海蜗牛)2003-06-01 17:52:38 在 C++ Builder / 数据库及相关技术 提问

能不能建一张表,第一个字段是id(也是主键),只是用来识别不同的记录的。但是在使用过程中我不必自己填这个字段,如果做了Table->Append之类的操作,该字段的值自动加1。这样可行吗?  
   
  如果不行的话,那我增加一条记录时,怎么知道前面记录的id值已经是多少了呢?  
  谢谢 问题点数:40、回复次数:15Top

1 楼annkie(无声的雨)回复于 2003-06-01 18:24:08 得分 40

可以,access的字段设计器可以设置其数据类型为自增编号。  
            ms   sql可以设置数据类型为int或其他整型,在列的属性选择“标识”为“   是   ”  
  Top

2 楼BlackSnail(粉红海蜗牛)回复于 2003-06-01 19:24:24 得分 0

我用的是SQLServer,按照你说的设置“标识”为“是”,但是Post时报“Field   'id'   must   have   a   value”。怎么回事呢?Top

3 楼annkie(无声的雨)回复于 2003-06-01 19:35:19 得分 0

你是如何操作的?  
  Append  
  Post?Top

4 楼BlackSnail(粉红海蜗牛)回复于 2003-06-01 19:44:30 得分 0

对,  
  Table1->Append();  
  Table1->FieldByName("course")->AsString=ComboBox1->Text;  
  Table1->FieldByName("type")->AsString="PD";  
  ...(不包含对id字段的赋值)  
  Table1->Post();  
  Top

5 楼cnphw(阿伟)回复于 2003-06-01 19:49:24 得分 0

看来,我可以接分了,  
   
  在SqlServer   如你所说,需要设置设置“标识”为“是”,  
   
  那是第一步,  
   
  第二:要看你用什么控件与数据关联做编辑了  
   
  1。是Table   时,需要将所有字段加入AddField中,但是不要加入"自增字段"  
   
  2。是TQuery时,  
   
      我只说使用TUpdateSQL的情况,在TUpdate   里面注意不要自动生成SQl句子时,选中"自增字段"  
   
  如果你自己写Insert,update句子,不要包含“自增字段”  
   
   
   
   
   
   
   
  Top

6 楼annkie(无声的雨)回复于 2003-06-01 19:52:05 得分 0

我到是没有这样做过,你试试在Table1->Append()后加Table1->Edit();  
  我一般是使用sql语句更新的。  
  AnsiString   sql   =   "insert   into   tablename(fieldname1,fieldname2,...)   values(value1,value2,...)";  
  //...  
  Query->Close();  
  Query->SQL->Clear();  
  Query->SQL->Add(sql);  
  Query->ExecSQL();  
  //...Top

7 楼cnphw(阿伟)回复于 2003-06-01 19:52:26 得分 0

再告诉你一个经验,对SqlServer不要用Table,要多用TQuery或TADOQueryTop

8 楼BlackSnail(粉红海蜗牛)回复于 2003-06-01 19:53:08 得分 0

不好意思,我不太明白“将所有字段加入AddField中”是什么意思?可以解释一下吗?Top

9 楼cnphw(阿伟)回复于 2003-06-01 19:53:49 得分 0

annkie(无声的雨)你好Top

10 楼BlackSnail(粉红海蜗牛)回复于 2003-06-01 19:54:29 得分 0

OK,我试试,成功后马上加分,稍等五分钟....Top

11 楼cnphw(阿伟)回复于 2003-06-01 19:57:03 得分 0

双击Table后会出一个字段框,点右键会出现一个菜单,有Add   Fields...的对话框,你可以看看Top

12 楼annkie(无声的雨)回复于 2003-06-01 20:01:42 得分 0

cnphw(a伟)   :  
          hello!  
  对你这种情况:  
  在  
  Table1->Append()  
  之前获得当前最大Id值,然后自己赋值也可以的。  
  Table1->Last();  
  int   maxID   =   Table1->FieldByName("Id")->AsInteger;  
  Table1->Append();  
  Table1->FieldByName("Id")->Value   =   maxID   +   1;  
  //...  
  建议同上:尽量习惯使用sql语句操作数据库。  
   
   
   
   
  Top

13 楼BlackSnail(粉红海蜗牛)回复于 2003-06-01 20:01:48 得分 0

成功了,非常感谢,马上加分。Top

14 楼BlackSnail(粉红海蜗牛)回复于 2003-06-01 20:05:12 得分 0

对不起,cnphw(a伟),我没注意到你也在帮我解决问题,结贴后才发现有两位朋友回答我的问题,实在对不起。有办法补救吗?Top

15 楼cnphw(阿伟)回复于 2003-06-01 20:15:09 得分 0

没有关系Top

相关问题

  • 如何得到parodox表中某字段的最大值?
  • 取得表中不同字段的最大值??
  • 想在MYSQL的一张表中取ID这个字段的最大值
  • 如何获得多张表中,某字段的最大值。------在线等。。。。。。
  • 求一个SQL语句,求两表中同一字段的最大值
  • 请问怎么知道表中记录集中某个字段的值的最大值??
  • 我怎么从表里取出一个字段的最大值。(在线等。。。help me)
  • 在SqlServer中,如何从表中的一部分数据中对某个字段取最大值?例如:
  • 想得到某个表的某个字段的最大值,写了个函数,帮忙看看错在哪里?
  • 如何取得Dataset中表table1的某字段的最大值,最小值,平均值,和等!!!!

关键词

  • 字段
  • 数据
  • sqlserver
  • sql
  • fieldbyname
  • 标识
  • 设置
  • 值
  • append
  • 使用

得分解答快速导航

  • 帖主:BlackSnail
  • annkie

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo