delphi 如何获取执行sql返回的结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 如何获取执行sql返回的结果相关的知识,希望对你有一定的参考价值。

DOConnection组件和ADOQuery组件
DataAccess标签里有个DataSource组件
DataControl标签里有个DBGrid组件

将上面的4个组件放到Form上,ADOQuery的Connection属性改成ADOConnection1,DataSource的Dataset属性改成ADOQuery1,DBGrid的DataSource属性改成DataSource1.

然后将ADOConnection1连接到数据库,将ADOQuery1的Active设成True,并且在ADOQuery1的SQL里加一句Select语句,结果就会返回到DBGrid上了.
参考技术A with Query1 do
begin
sql.Clear;
sql.Add('select * 验证表 where 用户名="'+edit1.Text+'" and 密码="'+edit2.Text+'"');
Query1.Open;
if (query1.recordcount >0) then

用户和密码正确结果就会大于0 然后 执行你要干的事本回答被提问者采纳

如何在sql developer中执行同时具有out参数和返回值的函数以获取结果

【中文标题】如何在sql developer中执行同时具有out参数和返回值的函数以获取结果【英文标题】:How to execute a function which has both out parameter and return value to get the result both in sql developer 【发布时间】:2020-06-23 14:47:39 【问题描述】:
create or replace FUNCTION RETURN_AP_ORDER_CUR (count_product OUT NOCOPY SYS_REFCURSOR)
RETURN SYS_REFCURSOR 
AS
APP_RECORDSET SYS_REFCURSOR;
i AP_ORDER%ROWTYPE;

BEGIN 

OPEN APP_RECORDSET FOR 
SELECT ORDER_ID,REGEXP_REPLACE(PRODUCT_NAME, '^\s', '') PRODUCT_NAME
   FROM
        (
         SELECT a.ORDER_ID, b.COLUMN_VALUE as PRODUCT_NAME
         FROM (SELECT ORDER_ID, PRODUCT_NAME FROM AP_ORDER) a 
         NATURAL JOIN TABLE(FNC_COL2ROW(PRODUCT_NAME)) b 
        );

RETURN APP_RECORDSET;

LOOP
 FETCH APP_RECORDSET INTO i;
EXIT WHEN APP_RECORDSET%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(i.ORDER_ID||' '||i.PRODUCT_NAME);
INSERT INTO AP_ORDER_SPLIT (ORDER_ID,PRODUCT_NAME) VALUES (i.ORDER_ID,i.PRODUCT_NAME);
COMMIT;
END LOOP;
close APP_RECORDSET;

OPEN count_product FOR Select ORDER_ID,COUNT(1) from AP_ORDER_SPLIT group by ORDER_ID;
   
    EXCEPTION
WHEN TOO_MANY_ROWS THEN
 dbms_output.put_line('**Error** Several Values'); -- do something meaningful here 
WHEN NO_DATA_FOUND THEN
 dbms_output.put_line('There is no data in variable');
WHEN OTHERS THEN
  dbms_output.put_line('Error code ' || SQLCODE || SQLERRM);
   END RETURN_AP_ORDER_CUR;

如何使用绑定变量在 SQL 开发人员中获取输出参数和返回值的结果。

请分享一个匿名区块 请提出一些方法

将逗号分隔值存储到引用光标 在sql语句中使用函数来获取分隔值 获取计数数据到输出参数

【问题讨论】:

【参考方案1】:

一旦函数到达RETURN 语句,则不会执行任何其他代码,因此所有代码(循环、获取等)都被“跳过”。

一个简化的说明如何做到这一点:

SQL> create or replace function f_test (par_rc out nocopy sys_refcursor)
  2    return sys_refcursor
  3  is
  4    l_rc sys_refcursor;
  5  begin
  6    open par_rc for select * from dept;
  7
  8    open l_rc for select empno, ename, job, sal from emp
  9                  where deptno = 10;
 10
 11    return l_rc;
 12  end;
 13  /

Function created.

调用这样的函数:

SQL> declare
  2    l_out sys_refcursor;  -- will hold function's OUT parameter
  3    l_ret sys_refcursor;  -- will hold function's RETURN value
  4  begin
  5    l_ret := f_test(l_out);
  6  end;
  7  /

PL/SQL procedure successfully completed.

SQL>

【讨论】:

以上是关于delphi 如何获取执行sql返回的结果的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?

python执行多进程时,如何获取函数返回的值

PHP如何调用SQLServer2012的存储过程并获取返回结果集及出参?

delphi 调用exe文件后怎么获得执行结果

执行sql操作后如何获取其返回值