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里面如何在存储过程里面获取另一个存储过程所返回的表的数据?