本人写了一个测试闰年的函数,在sql server 2000顺利运行通过:
if exists( select  * from sysobjects where type = 'fn' and name='isLeapYear') 
drop function isLeapYear 
go 
create function isLeapYear
(@year int)
returns int
as
begin
declare @days int
set @days = 365 if @year % 4 = 0 
if @year % 100 <> 0
set @days = 366

if @year % 400 = 0
set @days = 366

return @days
end
但是我用adoQuery1.sql.add方法将上述字符串加入,并execsql之,却出现错误告诉我'go 附近有语法错误',请问如何改正?

解决方案 »

  1.   

    先adoQuery1.sql.add if exists( select  * from sysobjects where type = 'fn' and name='isLeapYear') 
    drop function isLeapYear 
    然后执行.再加后面的(GO不要),然后再执行
      

  2.   

    go 之前和go之后的分两次execsql
      

  3.   

    你既然在SQL SERVER里面建立了这个函数,你在adoQuery1.sql.add 里面直接用isLeapYear函数就可以了,干吗还要用在DELPHI里面动态创建这个函数呢
      

  4.   

    declare @k int
    Set @k=[dbo].isLeapYear(2005)
    select @k
      

  5.   

    To 幸运男孩:
    我的函数是要用在不同的数据库上滴~~
    问题已经解决!把'Go'去掉分两次execsql!
    结帖!