W wuzhenzhen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-22 #1 我在query中的SQL语句中:select * from ***('***'为存储过程名),激活 时老是出错,为什么?(query控件除了指定该SQL数据库之外还需要设置什么 属性吗?)
W wuzhenzhen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-22 #2 该存储过程没有参数,错误如下: Tabledo es not exist. [Microsoft][ODBC SQL SERVER DIRVER][Sql Server]invalid object name 'wzz' ('wzz'是我写的一个存储过程名,已经存在该库中的)
该存储过程没有参数,错误如下: Tabledo es not exist. [Microsoft][ODBC SQL SERVER DIRVER][Sql Server]invalid object name 'wzz' ('wzz'是我写的一个存储过程名,已经存在该库中的)
G g622 Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-22 #5 要用TQuery构件从存储过程中检索数据集,必须正确设置SQL属性。在SELECT语句中,要用存储过程的名称代替表格的名称。如果存储过程需要传递输入参数的话,要 仿照Object Pascal语言的过程那样,在存储过程后面用一对圆括号把参数的值括起 来。如果有多个输入参数,彼此之间要用逗号隔开。 例如,InterBase服务器上有一个存储过程叫GET_EMP_PROJ,它需要传递一个输入参 数叫EMP_NO,并且通过一个输出参数叫PROJ_ID来传递执行结果。下面是这个存储过 程的代码: CREATE PROCEDURE GET_EMP_PROJ (EMP_NO SMALLINT) CREATE PROCEDURE GET_EMP_PROJ (EMP_NO SMALLINT) RETURNS (PROJ_ID CHAR(5))ASbegin FOR SELECT PROJ_IDFROM EMPLOYEE_PROJECTWHERE EMP_NO = :EMP_NOINTO ROJ_IDDOSUSPend; END 相应地,要通过上面这个存储过程检索数据集,SQL语句可以这样写:SELECT *FROM GET_EMP_PROJ(52) 注意大小写
要用TQuery构件从存储过程中检索数据集,必须正确设置SQL属性。在SELECT语句中,要用存储过程的名称代替表格的名称。如果存储过程需要传递输入参数的话,要 仿照Object Pascal语言的过程那样,在存储过程后面用一对圆括号把参数的值括起 来。如果有多个输入参数,彼此之间要用逗号隔开。 例如,InterBase服务器上有一个存储过程叫GET_EMP_PROJ,它需要传递一个输入参 数叫EMP_NO,并且通过一个输出参数叫PROJ_ID来传递执行结果。下面是这个存储过 程的代码: CREATE PROCEDURE GET_EMP_PROJ (EMP_NO SMALLINT) CREATE PROCEDURE GET_EMP_PROJ (EMP_NO SMALLINT) RETURNS (PROJ_ID CHAR(5))ASbegin FOR SELECT PROJ_IDFROM EMPLOYEE_PROJECTWHERE EMP_NO = :EMP_NOINTO ROJ_IDDOSUSPend; END 相应地,要通过上面这个存储过程检索数据集,SQL语句可以这样写:SELECT *FROM GET_EMP_PROJ(52) 注意大小写
W wuzhenzhen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-22 #6 ?????我不明白?我什么时候问过这个问题?
W wuzhenzhen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-22 #7 谢谢g622 我也是看了核心编程里面这一段的,但自己试就不行,不知道为什么?
W wuzhenzhen Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-23 #9 g622: 我的存储过程并不是在程序中定义的,而是直接建立在SQL 服务器上的,这应该没 有影响吧?
江 江林勝 Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-23 #10 如果返回的數據量大的話用:存儲過程. With Query1do begin Close; SQL.text:='WQ '+ Edit1.Text; Open; end; 注:WQ為存儲過程名. Edit1.Text為要輸入的查詢內容.
如果返回的數據量大的話用:存儲過程. With Query1do begin Close; SQL.text:='WQ '+ Edit1.Text; Open; end; 注:WQ為存儲過程名. Edit1.Text為要輸入的查詢內容.