delphi + oracle问题

szwwhui 2008-09-26 12:09:34
delphi 连接 oracle 10G的数据库

使用select 查询数据没有问题,但是发现一用update、delete 就出现问题

id := '23';
SqlStr := 'UPDATE tbProviderInf SET Providername='''+Edit1.Text+''','
+'ProviderCode='''+Edit2.Text+''','
+'ProviderMan='''+Edit3.Text+''','
+'ProviderTel='''+Edit4.Text+''','
+' providermemo='''+Memo1.Text+''''
+' where ProviderId = TO_NUMBER(''' + id +''') ';
with NMDQuery do
begin
Close;
Sql.Text := SqlStr;
ExecSQL; 一执行到这步程序就崩溃了,也没有错误提示。 但是把sql语句调出来在pl sql里面执行没有问题,奇怪。

请问是哪出的问题?
...全文
124 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hotthing 2008-12-29
  • 打赏
  • 举报
回复
为什么不用参数,而直接构造SQL语句,看起来太乱
badroc 2008-09-28
  • 打赏
  • 举报
回复
第六行仔细看看
zykaixin 2008-09-27
  • 打赏
  • 举报
回复
不是多个引号吧,是Memo里有回车吧,要不'怎么会跑到下一行?
szwwhui 2008-09-26
  • 打赏
  • 举报
回复
我查了数据库表,没有外键什么的,奇怪,是不是锁住了
fangsp 2008-09-26
  • 打赏
  • 举报
回复
是不是数据库本身做了约束啊?
按道理不应该啊
Corn1 2008-09-26
  • 打赏
  • 举报
回复
我以前也碰到过这种情况,update以后,跟死了一样。pl/sql关掉,重新连接,然后再试delphi的,也重新连接,结果好了...
也许,有些东西没法用科学解释的。
thinktoad 2008-09-26
  • 打赏
  • 举报
回复
应该不会吧
szwwhui 2008-09-26
  • 打赏
  • 举报
回复
我设置了断点,已经看过了变量里面的内容,且把内容复制出来在 pl sql里面执行无误
hongqi162 2008-09-26
  • 打赏
  • 举报
回复
showmessage一下你得sqlstr就知道

---------------------------
Project1
---------------------------
UPDATE tbProviderInf SET
Providername='Edit1',
ProviderCode='Edit2',
ProviderMan='Edit3',
ProviderTel='Edit4',
providermemo='Memo1
' where ProviderId = TO_NUMBER('23')
---------------------------
OK
---------------------------


多了个引号


var
id,sqlstr:string;
begin
id := '23';
SqlStr := 'UPDATE tbProviderInf SET Providername='''+Edit1.Text+''','
+'ProviderCode='''+Edit2.Text+''','
+'ProviderMan='''+Edit3.Text+''','
+'ProviderTel='''+Edit4.Text+''','
+' providermemo='''+Memo1.Text+''
+' where ProviderId = TO_NUMBER(''' + id +''') ';
showmessage(sqlstr);
end;
阿三 2008-09-26
  • 打赏
  • 举报
回复
这么怪,你执行一个别的update语句也有这种情况吗,试试
erocyli 2008-09-26
  • 打赏
  • 举报
回复
咋会没有错误提示呢,什么情况描述一下

2,496

社区成员

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

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