SQL SERVER和INTERBASE的转换问题

bonniewater 2003-09-11 02:39:33
UPDATE CL
SET NUM=@NUM,CBPRC=@CBPRC,CBMNY=@CBMNY
WHERE CLID=@CLID

IF @@ROWCOUNT=0
BEGIN
RAISERROR 50001 '不能正确设定商品成本.'
RETURN
END
这段怎么转换成INTERBASE的呀,主要就是INTERBASE里面没有ROWCOUNT这个全局变量呀?请指教!

SELECT @JCPRC=JCPRC,@JCMNY=JCMNY,@JCNUM=JCNUM
FROM FENKKCZM
WHERE ITEMID=@ITEMID

IF @@ROWCOUNT=0
BEGIN
RAISERROR 50001 '不能正确读取货位商品库存帐目记录.'
RETURN
END

END
这种情况好说,加个变量就解决了,可是update的时候不好弄了
...全文
83 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bonniewater 2003-09-16
  • 打赏
  • 举报
回复
明白了,多谢!
bonniewater 2003-09-15
  • 打赏
  • 举报
回复
也就是说不行了???????????
erickleung 2003-09-15
  • 打赏
  • 举报
回复
请你明白 interbase和ms sql的sql是用於两种不同意念和结构组织的sql server. 同样是Oracle, 都要分为 sql/x; sql/j, pl/sql
这是每一种 sql server都是用自己特定的sql语言以达成某类的结果. 因此你不能把某单一 ms-sql 直接译为interbase-sql.

如果发觉 ib 无 row-count, 或 row-affect等function, 你便得多花点时间, 先用 select count(*) from xxx where condition= xxx into :count1

if (count1 = 0) then ....

分为二步做吧.

再者, interbase 6.5只有很基本sql, 像还不会 case, nullif, ...等的附加function. 所以敬请先查阅interbase的 sql reference吧.
TR@SOE 2003-09-15
  • 打赏
  • 举报
回复
也不能这么说啊。你可以在高级编程语言中自由使用所有的逻辑判断的。
bonniewater 2003-09-13
  • 打赏
  • 举报
回复
顶……
erickleung 2003-09-13
  • 打赏
  • 举报
回复
只能说的是 MS SQL 和 Interbase 是两个不同的数据库, 其SQL就是不同的. 句号.

erickleung 2003-09-12
  • 打赏
  • 举报
回复
FB 1.5刚引入 row_count.
e.g.
Update Table1
Set Field1 = :Var1
where ID = :Var2

If (row_count = 0) then
Exception E_exception_1
bonniewater 2003-09-12
  • 打赏
  • 举报
回复
我们的软件现在用的就是IB6.5,不能转换成FB1.5
要是转换的话,应该怎么来做呢?
bonniewater 2003-09-12
  • 打赏
  • 举报
回复
SQLSERVER中这句
IF NOT EXISTS (SELECT CLID FROM CL WHERE CLID=@CLID)
转换成IB6.5中
IF ((SELECT CLID FROM CL WHERE CLID=:CLID) IS NULL)
老是报错,要是再声明一个变量就太麻烦了,请指教!

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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