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里面执行没有问题,奇怪。请问是哪出的问题?
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里面执行没有问题,奇怪。请问是哪出的问题?
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;
也许,有些东西没法用科学解释的。