两周啦,就为了一句SQL语句的问题,我上来问有不下十次,可还没有解决!!!!!!(65分)

  • 主题发起人 主题发起人 阿虫
  • 开始时间 开始时间
很简单啊,不是说了步骤吗?
全用数据控件,你所要做的只是写查询/删除/插入/修改用的SQL语句而已,然后放一个DataSource使其Dataset连接Query,然后可以放数据敏感控件,将他们的DataSource指向DataSource控件。
最后要真正更新回数据库的时候写一个Query.ApplyUpdates就可以了。
总之就是:Query配合UpdateSQL相当于Table。至于利用一个Table配合几个数据敏感控件怎样写一个数据编辑器应该是Delphi开发数据库的入门知识了吧?
 
自己用SQL语句写吧,INSERT 和UPDATE。
写好后query1.execsql;
 
稍微改一下,完成能运行,不会再不行了吧
mtInformation 提问框显示感叹号 mtConfirmation 提问框显示问号
with query1 do
begin
close;sql.clear;
sql.add('select * from 抄表信息库 where bh=:vbh');
parambyname('vbh').value:=edit1.text
open;
if recoredcount>0 then
if messagedlg('表号已存在,覆盖吗?',mtconfirmation,[mbYes,mbNo],0)=mrYes then
begin
close;sql.clear;
sql.add('update 抄表信息库 set xuh=:vxuh where bh=:vbh');
parambyname('vxuh').value:=edit2.text
parambyname('vbh').value:=edit1.text
execsql;
showmessage('覆盖成功');
end
else
begin
close;sql.clear;
sql.add('insert into 抄表信息库 (xuh,bh) values (:vxuh,:vbh');
parambyname('vxuh').value:=edit2.text
parambyname('vbh').value:=edit1.text
execsql;
showmessage('添加成功');
end;
 
阿虫,你把Table和TQuery的用法混用了,用Table时要对表进行编辑必须改变它的状态(用
Table.edit等),用TQuery时只要你对表有编辑权限就可直接用Insert, UpDate, Delete等
命令进行编辑了! 我whitehorse对你程序的这次修改是行得通的!
 
with Query1 do begin
Sql.Clear;
Sql.Add( 'SELECT BH FROM TEST WHERE BH = "' + Edit1.Text + '"');
Open;
if ( RecordCount > 0 ) then
if Messagedlg( '表号已存在,覆盖吗?', mtWarning, [mbYes, mbNo], 0 ) = mrNo then
exit
else begin
Sql.Clear;
Sql.Add('UPDATE TEST set xuh = "' + Edit2.Text + '" WHERE BH ="' + Edit1.Text + '"');
ExecSql;
end
else begin
Sql.Clear;
Sql.Add('INSERT INTO TEST (BH, xuh ) VALUES( "' + Edit1.Text + '","' + Edit2.Text + '")');
ExecSql;
end;
end;
该程序用PARADOX数据库调试时已经通过,请你自己试一下。
 
此问题traveller老兄的回答是简便易行的。
 
在此我由衷的感谢大家的帮助,从各位朋友的程序里,我还是有不少的收获的,看到有这么
多的热心人的帮助,让我对编程有了更多的信心,再次说声谢谢。
heibaike老兄的程序,我用了,很好用,其它朋友的程序我也打印出来,我会好好看一看,
从中多学点东西,谢谢大家。
 
后退
顶部