BCB程序里建立数据库函数?

castlooo 2008-05-27 01:09:53
oracle数据库里可以执行的函数:
CREATE OR REPLACE FUNCTION csh.is_number(parmin VARCHAR2) RETURN NUMBER IS
val NUMBER;
BEGIN
val := TO_NUMBER(NVL(parmin, 'a'));
RETURN 1;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;

我想在在程序里完成该函数的建立:
TADOCommand *ado = new TADOCommand(this);
adq->Connection = ADOConntion1;
aSQL = "CREATE OR REPLACE FUNCTION user1.is_number (parmin VARCHAR2) RETURN NUMBER "
"IS "
"val NUMBER; "
"BEGIN "
"val := TO_NUMBER (NVL (parmin, 'a')); "
"RETURN 1; "
"EXCEPTION "
"WHEN OTHERS "
"THEN "
"RETURN 0; "
"END;";
TO_NUMBER (NVL (parmin, 'a')); RETURN 1; EXCEPTION WHEN OTHERS THEN RETURN 0; END; ";
ado->CommandText =aSQL;
ado->Execute(); // 报错: 不正常的定义参数对象,提供了不一致或不完整的信息

//user1 为 oracle的一个用户
...全文
154 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2008-06-10
  • 打赏
  • 举报
回复
我建表直接用Tadoquery
MEFULEU 2008-06-06
  • 打赏
  • 举报
回复
现在dbexplor中试一下,建表偶都是标准语句

strSQL="CREATE TABLE mytable ( fields1 VARCHAR(50) NULL,\
fields2 VARCHAR(50) NULL,\
fields3 VARCHAR(255) NULL,\
fields4 VARCHAR(50) NULL)";
xjq2003 2008-06-02
  • 打赏
  • 举报
回复
??
52vc 2008-05-27
  • 打赏
  • 举报
回复
改成这样试试,是不是换行的问题!

TADOCommand *ado = new TADOCommand(this);
adq->Connection = ADOConntion1;
aSQL = "CREATE OR REPLACE FUNCTION user1.is_number (parmin VARCHAR2) RETURN NUMBER \
\n IS \
\n val NUMBER;\
\n BEGIN \
\n val := TO_NUMBER (NVL (parmin, 'a')); \
\n RETURN 1; \
\n EXCEPTION \
\n WHEN OTHERS \
\n THEN \
\n RETURN 0; \
\n END;";

ado->CommandText =aSQL;
ado->Execute(); // 报错: 不正常的定义参数对象,提供了不一致或不完整的信息


jxw1987628 2008-05-27
  • 打赏
  • 举报
回复
用存储过程吧,再说你已经基本写成了存储过程或者函数了,bcb里调用还是很方便的!

有些符号会被解析掉的,

存储过程执行起来效率高 ,推荐用TADOStoredProc
i_love_pc 2008-05-27
  • 打赏
  • 举报
回复
貌似是":="符号引起的问题,在bcb里这个代表TParameters参数的意思,但是在oracle语句中却是ddl运算符。
我不懂电脑 2008-05-27
  • 打赏
  • 举报
回复
最好在数据库建立存储过程
castlooo 2008-05-27
  • 打赏
  • 举报
回复
TADOCommand 不可以执行带可变参数的 东东?
castlooo 2008-05-27
  • 打赏
  • 举报
回复
我想在在程序里完成该函数的建立:
TADOCommand *ado = new TADOCommand(this);
adq->Connection = ADOConntion1;
aSQL = "CREATE OR REPLACE FUNCTION user1.is_number (parmin VARCHAR2) RETURN NUMBER "
"IS "
"val NUMBER; "
"BEGIN "
"val := TO_NUMBER (NVL (parmin, 'a')); "
"RETURN 1; "
"EXCEPTION "
"WHEN OTHERS "
"THEN "
"RETURN 0; "
"END;";

ado->CommandText =aSQL;
ado->Execute(); // 报错: 不正常的定义参数对象,提供了不一致或不完整的信息

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧