存储过程一般是和数据库类型相关的,比如sql server和oracel的(叫做PL/SQL)存储过程就有许多区别.
1:那要根据你想学的数据库系统来决定,sql server的联机帮助就很不错,看看里面的例子就明白大半了,oracle的推荐《Oracle8 PL_SQL程序设计》
2和3一起回答:每种数据库系统都有数据字典,里面存贮数据库对象的信息,比如你可以查User_procedures表来确定存储过程是否已存在,既然可以判断存储过程是否已存在,当然可以根据需要在应用程序中动态的为数据库添加存储过程(但我一般不这样做)
4。使用存储过程的目的就是你说的“适用于在服务器端进行比较大量的运算,然后返回运算结果(为了减少网络传输量)”啊。

解决方案 »

  1.   

    对了,User_procedures是oracle的数据字典。
      

  2.   

    谢谢大家的回答。补充一点,我用的是Interbase。那里有介绍的资料?
    是不是存储过程跟SQL语句一样,有一个标准集跟扩展集?此外问题2、3能不能说的具体一点,最好能有具体的代码。
      

  3.   

    2、可以用SQL语句在应用程序中动态的为数据库添加存储过程。我的“物资管理系统”中有几处是这样做的,一直很好,只是这样做速度会慢些。具体做法你可以先做一个存储过程,再在查询分析器中打开该过程,看他是怎么写的,然后你学着做就是,不是太难,怕错的话你可以先用Showmessage()函数显示一下该过程内容,看对不对,对了再用。
    3、有办法知道数据库中已经存在某一个已知名字的存储过程。方法也可以在查询分析器中找到。
    先试试吧,还有问题的话我把我的拷给你(现在不在身边)
      

  4.   

    查询分析器是什么?SQL Explorer?我准备实现的是一个集数据库统计查询为一体的数据库插件系统。
    如果不使用存储过程的话没有办法提高效率。
    但是使用存储过程的话,升级上又存在问题,比如说要更新数据库文件等。这就体现不出插件系统的优势。所以才有此一问。不过对于一次升级只需要创建一次存储过程,所以我想速度慢点并不是那么重要。还请大家帮帮忙。
      

  5.   


    1 SQL 2000 有全套的中文帮助。2 应该可以。3 if exists( select * from master.dbo.sysobject where name = you_proc_name) ...
                               ~~~~~~~~~~~~~~~~~~~ //好象是这样,你再查一下吧。
    4 这是存储过程的作用之一。
      

  6.   

    谢谢各位,可是因为我在国外,所以没有办法买到D版。还是想请教一下能够下载资料的地方……
    如果哪位有意的话请将相关的详细源代码寄一份给我,我的信箱是:[email protected]
    我一定会给你加上100分的,决不食言。