数据库函数怎么返回值到BCB呢

supernature 2001-07-18 03:54:46
SQL SERVER中有许多函数命令,其中我需要用一个Curr_Identity("Table_Name")用于返回在Table_Name表中的一个Identity属性当前的最大值。改属性我定义的是int型,请问如何BCB得到该函数的返回值呢。
我用过TQuery或做成存储过程,用TStoredProc,都没成功。哪位大侠能给出具体代码应该怎么写。
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
supernature 2001-07-20
  • 打赏
  • 举报
回复
此问题已经搞定,以上几种方法均可以。多谢
TR@SOE 2001-07-19
  • 打赏
  • 举报
回复
那试试Query1->FieldByName("maxid")->Value?
luhongjun 2001-07-19
  • 打赏
  • 举报
回复
select Ident_Current('table_name') as maxid from anytable
Query1->FieldByName("maxid")->Value;
应该可以。
supernature 2001-07-19
  • 打赏
  • 举报
回复
还是不行阿,报相同的错误。我感觉好像maxid不是一个field,所以才出那样的错误的。
supernature 2001-07-18
  • 打赏
  • 举报
回复
select Ident_Current('table_name') maxid from anytable可以用,但是
Query1->FieldByName("maxid")->AsInteger却不行,报出的错误是
Field 'maxid' is of an unknown type
TR@SOE 2001-07-18
  • 打赏
  • 举报
回复
只要select Ident_Current('table_name')能用,那么select Ident_Current('table_name') maxid from anytable应该也可以用吧?我对SQL SERVER不熟悉,只是凭对SQL的感觉在写。呵呵。
supernature 2001-07-18
  • 打赏
  • 举报
回复
不对。Ident_Current('table_name')是SQL自带的函数(前面笔误,写成了curr_identity),其定义就是返回表名称为table_name的表的identity属性列的当前最大值,在Query Analysis中的其用法就是
select Ident_Current('table_name')
成功后的返回值为某最大值,类型为sql_variant.所以是不能想上面那样写的。

当然,用求max值的方法是可以的,即select max() from table
但是表越大,执行效率就越低,总感觉不太完美。

Xhunter 2001-07-18
  • 打赏
  • 举报
回复
关注
TR@SOE 2001-07-18
  • 打赏
  • 举报
回复
我觉得可以这样啊:
TQuery中SQL写作:

select Curr_Identity("table_name") maxid from table_name

然后在程序中执行Query,用

Query1->FieldByName("maxid")->AsInteger来获得它啊。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧