一个保存问题,请教 ( 积分: 50 )

  • 主题发起人 主题发起人 yedixifeng
  • 开始时间 开始时间
Y

yedixifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
软件原来是用的access,现在改为sql,下面这段保存代码遇到了问题:
procedure TBM_ZHIYUANF.saveClick(Sender: TObject);
var
strName: String;
begin
button_valid;
with dm.qryRun do
begin
Close;
SQL.Text := ' update zhiyuan set 违章车号 = "'
+ xingming.Text + '",'
+ '姓别="' +cb1.Text +'",'
+ '违章时间="' +shengri.Text +'",'
+ '系统类别="' +xingming.Text +'",'
+ '编辑输入="' +jiguan.Text +'",'
+ '处罚种类="' +xueli.Text +'",'
+ '发案方式="' +zhicheng.Text +'",'
+ '违章车型="' +shenfen.Text +'",'
+ '通知书编号="' +zhiwu.Text +'",'
+ '违章地点="' +diaoru.Text +'",'
+ '被处罚人="' +email.Text +'",'
+ '执法人员="' +bangong.Text +'",'
+ '处理日期="' +zhuzhai.Text +'",'
+ '地址电话="' +shouji.Text +'",'
+ '路径一="' +lujing.Text +'",'
+ '路径二="' +lujing1.Text +'",'
+ '路径三="' +lujing2.Text +'",'
+ '处理结果="' +culijg.Text +'",'
+ '处罚金额="' +cufaje.Text +'",'
+ '查找单位="' +cazaodw.Text +'",'
+ '违章车号1="' +weizhangch.Text +'",'
+ 'idd="' +Edit2.Text +'",'
+ '备注="' +memo.Text +'"'
+ ' where ID = '+IntToStr(vv);
Prepared := True;
ExecSQL;
DM.zhiyuan2.Open ;
saveimage;
end;

TreeView1.Selected.Text := xingming.Text ;
TreeView1.SetFocus;
TreeView1.Selected.Selected := True;
noedit;
end;

保存时,提示“不能使用空白的对象或列名…………”
请教,这段代码该如何重新写或修改?谢谢
 
不能使用双引号的确良
 
不使用双引号还是不行,能不能说具体点,谢谢。
 
"改为''
 
把语句中的所有双引号改为单引号
SQL.Text := ' update zhiyuan set 违章车号 = ''
+''''+ xingming.Text + ''','
+ '姓别='''+cb1.Text +'''','
....
 
谢谢各位,改了引号后,保存时出现“无法为更新行集定位:一些值可能已经在最后读取后改变”,查看表上:“违章车号1”存入了,而“违章车号”、“系统类别”没存入也就是没修改。光标指在“TreeView1.Selected.Text := xingming.Text ;
”这一行上。
“违章车号1”、“违章车号”、“系统类别”这三个需要是一样的数据。
麻烦各位指点,需要怎么继续修改才对,谢谢。
 
把你这个语句拼出来,用一个变量把他读出来,然后把这个变量Print出来.
看看最后是怎么样的.具体方法可以在这行上
SQL.Text := ' update zhiyuan set 违章车号 = "'......设置断点,运行到这句话的时候,按下CTIL+F7 查看一下
 
再次谢谢各位。代码修改如下:

procedure TBM_ZHIYUANF.SpeedButton98Click(Sender: TObject);
begin
xingming.Text :=weizhangch.Text;
end;

procedure TBM_ZHIYUANF.saveClick(Sender: TObject);
var
strName: String;
begin
button_valid;
with dm.qryRun do
begin
Close;
SQL.Text := ' update zhiyuan set 违章车号 = '''
+ xingming.Text + ''','
+ '姓别=''' +cb1.Text +''','
+ '违章时间=''' +shengri.Text +''','
+ '系统类别=''' +xingming.Text +''','
+ '编辑输入=''' +jiguan.Text +''','
+ '处罚种类=''' +xueli.Text +''','
+ '发案方式=''' +zhicheng.Text +''','
+ '违章车型=''' +shenfen.Text +''','
+ '通知书编号=''' +zhiwu.Text +''','
+ '违章地点=''' +diaoru.Text +''','
+ '被处罚人=''' +email.Text +''','
+ '执法人员=''' +bangong.Text +''','
+ '处理日期=''' +zhuzhai.Text +''','
+ '地址电话=''' +shouji.Text +''','
+ '路径一=''' +lujing.Text +''','
+ '路径二=''' +lujing1.Text +''','
+ '路径三=''' +lujing2.Text +''','
+ '处理结果=''' +culijg.Text +''','
+ '处罚金额=''' +cufaje.Text +''','
+ '查找单位=''' +cazaodw.Text +''','
+ '违章车号1=''' +weizhangch.Text +''','
+ 'idd=''' +Edit2.Text +''','
+ '备注=''' +memo.Text +''''
+ ' where ID = '+IntToStr(vv);
Prepared := True;
ExecSQL;
DM.zhiyuan2.Open ;
saveimage;
end;

TreeView1.Selected.Text := xingming.Text ;
TreeView1.SetFocus;
TreeView1.Selected.Selected := True;
noedit;
end;

保存时继续出现“无法为更新行集定位:一些值可能已经在最后读取后改变”,光标指在“TreeView1.Selected.Text := xingming.Text ;”这一行上。查看SQL表“违章车号1”、“违章车号”、“系统类别”均一致了。出现这个提示好象与即时显示有关。如何调整呢?谢谢。
 
数据库有没有定义主键.
 
谢谢zhj09,好象行了。晚点结帖散分,如果没有问题的话。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
I
回复
0
查看
687
import
I
后退
顶部