》》点击插入后数据库表格中还是空的。不能成功插入。错在那里。怎么改?
procedure TForm4.Button3Click(Sender: TObject);
begin
dm.DataModule3.Query_yuding.active:=false;
dm.DataModule3.Query_yuding.SQL.Clear;
dm.DataModule3.Query_yuding.SQL.add('select * from jsx.dbo.order_hotel');
dm.DataModule3.Query_yuding.SQL.Append('insert into order_hotel(xingming,kahao,shouji,dianhua,sex,chengshi,jiudianming,fangxin,chuanzhen,ruzhushijian,likaishijian) values(:xingming,:kahao,:shouji,:dianhua,:sex,:chengshi,:jiudianming,:fangxing,:chuanzhen,:ruzhushijian,:likaishijian)');
dm.DataModule3.Query_yuding.ParamByName('xingming').asstring:=edit1.text;
dm.DataModule3.Query_yuding.ParamByName('kahao').asstring:=edit3.text;
dm.DataModule3.Query_yuding.ParamByName('shouji').asstring:=edit8.text;
dm.DataModule3.Query_yuding.ParamByName('dianhua').asstring:=edit13.text;
dm.DataModule3.Query_yuding.ParamByName('sex').asstring:=edit2.text;
dm.DataModule3.Query_yuding.ParamByName('chengshi').asstring:=edit4.text;
dm.DataModule3.Query_yuding.ParamByName('jiudianming').asstring:=edit5.text;
dm.DataModule3.Query_yuding.ParamByName('fangxing').asstring:=edit6.text;
dm.DataModule3.Query_yuding.ParamByName('chuanzhen').asstring:=edit14.text;
dm.DataModule3.Query_yuding.ParamByName('ruzhushijian').asstring:=edit10.text;
dm.DataModule3.Query_yuding.ParamByName('likaishijian').asstring:=edit19.text;
dm.DataModule3.Query_yuding.ExecSQL;
dm.DataModule3.Query_yuding.Prepare;
dm.DataModule3.Query_yuding.active:=true;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
dm.DataModule3.Query_yuding.active:=false;
dm.DataModule3.Query_yuding.SQL.Clear;
dm.DataModule3.Query_yuding.SQL.add('select * from jsx.dbo.order_hotel');
dm.DataModule3.Query_yuding.SQL.Append('insert into order_hotel(xingming,kahao,shouji,dianhua,sex,chengshi,jiudianming,fangxin,chuanzhen,ruzhushijian,likaishijian) values(:xingming,:kahao,:shouji,:dianhua,:sex,:chengshi,:jiudianming,:fangxing,:chuanzhen,:ruzhushijian,:likaishijian)');
dm.DataModule3.Query_yuding.ParamByName('xingming').asstring:=edit1.text;
dm.DataModule3.Query_yuding.ParamByName('kahao').asstring:=edit3.text;
dm.DataModule3.Query_yuding.ParamByName('shouji').asstring:=edit8.text;
dm.DataModule3.Query_yuding.ParamByName('dianhua').asstring:=edit13.text;
dm.DataModule3.Query_yuding.ParamByName('sex').asstring:=edit2.text;
dm.DataModule3.Query_yuding.ParamByName('chengshi').asstring:=edit4.text;
dm.DataModule3.Query_yuding.ParamByName('jiudianming').asstring:=edit5.text;
dm.DataModule3.Query_yuding.ParamByName('fangxing').asstring:=edit6.text;
dm.DataModule3.Query_yuding.ParamByName('chuanzhen').asstring:=edit14.text;
dm.DataModule3.Query_yuding.ParamByName('ruzhushijian').asstring:=edit10.text;
dm.DataModule3.Query_yuding.ParamByName('likaishijian').asstring:=edit19.text;
dm.DataModule3.Query_yuding.ExecSQL;
dm.DataModule3.Query_yuding.Prepare;
dm.DataModule3.Query_yuding.active:=true;
end;
另外最后三句换成这个顺序:
dm.DataModule3.Query_yuding.Prepare;
dm.DataModule3.Query_yuding.ExecSQL;
dm.DataModule3.Query_yuding.active:=true;
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
begin
with dm.DataModule3.Query_yuding do
begin
active:=false;
SQL.Clear;
SQL.add('insert into order_hotel(xingming,kahao,shouji,dianhua,sex,chengshi,jiudianming,fangxin,chuanzhen,ruzhushijian,likaishijian)
SQL.add(' values(:xingming,:kahao,:shouji,:dianhua,:sex,:chengshi,:jiudianming,:fangxing,:chuanzhen,:ruzhushijian,:likaishijian)');
ParamByName('xingming').asstring:=edit1.text;
ParamByName('kahao').asstring:=edit3.text;
ParamByName('shouji').asstring:=edit8.text;
ParamByName('dianhua').asstring:=edit13.text;
ParamByName('sex').asstring:=edit2.text;
ParamByName('chengshi').asstring:=edit4.text;
ParamByName('jiudianming').asstring:=edit5.text;
ParamByName('fangxing').asstring:=edit6.text;
ParamByName('chuanzhen').asstring:=edit14.text;
ParamByName('ruzhushijian').asstring:=edit10.text;
ParamByName('likaishijian').asstring:=edit19.text;
ExecSQL;
SQL.Clear;
SQL.add('select * from jsx.dbo.order_hotel');
active:=true;
end;
end;
应该用sql.add命令,当然sql.append理论上也应该可以
dm.DataModule3.Query_yuding.SQL.add('select * from jsx.dbo.order_hotel');
execute后,再close,sql.add,open显示更新后的内容.
说的做了。
但是出错。提示:对象名order_hotel无效
2、first .prepare then ExecSql
3、add and append 的区别
begin
with dm.DataModule3.Query_yuding do
begin
active:=false;
SQL.Clear;
SQL.add('insert into jsx.dbo.order_hotel(xingming,kahao,shouji,dianhua,sex,chengshi,jiudianming,fangxin,chuanzhen,ruzhushijian,likaishijian)
SQL.add(' values(:xingming,:kahao,:shouji,:dianhua,:sex,:chengshi,:jiudianming,:fangxing,:chuanzhen,:ruzhushijian,:likaishijian)');
ParamByName('xingming').asstring:=edit1.text;
ParamByName('kahao').asstring:=edit3.text;
ParamByName('shouji').asstring:=edit8.text;
ParamByName('dianhua').asstring:=edit13.text;
ParamByName('sex').asstring:=edit2.text;
ParamByName('chengshi').asstring:=edit4.text;
ParamByName('jiudianming').asstring:=edit5.text;
ParamByName('fangxing').asstring:=edit6.text;
ParamByName('chuanzhen').asstring:=edit14.text;
ParamByName('ruzhushijian').asstring:=edit10.text;
ParamByName('likaishijian').asstring:=edit19.text;
ExecSQL;
SQL.Clear;
SQL.add('select * from jsx.dbo.order_hotel');
active:=true;
end;
end;
看你在SELECT语句使用了用户名,所以加上在INSERT语句中也加上了jsx.dbo.
你再试试吧 SQL.add('insert into jsx.dbo.order_hotel(xingming,kahao,shouji,dianhua,sex,chengshi,jiudianming,fangxin,chuanzhen,ruzhushijian,likaishijian)
SQL.add(' values(:xingming,:kahao,:shouji,:dianhua,:sex,:chengshi,:jiudianming,:fangxing,:chuanzhen,:ruzhushijian,:likaishijian)');