在delphi程序中,用BDE连接数据库,在执行存储过程时,使用了
prepare和unprepare,请高手说说正确的用法。

解决方案 »

  1.   

    什么意思?prepare一下,然后正确得到参数,或者是编译一下?
      

  2.   

    在open 前用prepare
    在close前用unprepare
      

  3.   

    在execsql之前和sql.add之后,应该调用一下prepare
      

  4.   

    是否prepare后才可以正确得到参数
      

  5.   

    建议是这样,不用prepare也可以正确得到参数
      

  6.   

    prepare和unprepare是否必须成对出现?
      

  7.   

    个人觉得也可以不必成对使用,普遍是使用Prepare,可以增加效率。
      

  8.   

    to wzrlover(流光逝水):
      可以增加效率,你能说说怎么增加效率?
      

  9.   

    对于参数有所修改的数据库控件(query,storedprocedure)可以通过prepare得到新的参数
      

  10.   

    相当于预读一样,比如:
    delphi编译一个程序,先通读,有没有错误,再编译.
    差不多是一个道理.因为他要做到心中有数.如果心里没底,就会慢拉
      

  11.   

    如 guorui_wh所说的,每次SQL语句要在数据库中执行要先语法检验验,编译
    的一些处理工作,用Prepare(据李维书上所说)相当于将要执行SQL语句保存为临时的存储过程,无须每次编译,语法检验等。
      

  12.   

    如果我只执行一次存储过程,不用prepare是否更好呢。
      

  13.   

    用prepare是否会占用内存空间,必须用unprepare 来释放空间。
      

  14.   

    看了一下帮助,它会自己调用Unprepare.
    Note:When you change the text of a query at runtime, the query is automatically closed and unprepared.
      

  15.   

    其实你如果代码里没有显式调用prepare,
    在你open之前BDE也会调用prepare。个人认为
    如果不是在循环里频繁的调用同一组SQL语句,
    prepare可有可无。