请问各位大侠,如何在ado中实现类似BDE中的OnpdateRecord事件和UpdatesPending属性?
解决方案 »
- delphi iocomp 连接远程OPC server 问题
- 线程释放内存资源问题!!请大家帮忙
- 问一个基本的和ACCESS数据库连接的问题
- 如何从SELECT a,b FROM TABLE1 COMPUTE SUM(a)产生的两个结果集中取出SUM(a)
- Database Desktop 字段问题,在线等,100分
- 关于如何使用Textradevices详解
- 求汉化版Delphi,要操作界面全部是中文的哦。
- 将字符串存入byte数组
- 我学了一段时间的Delphi之后,发觉自已一下子很难提高,该怎么办?
- 各位老兄,能不能把你知道的关于DELPHI的好的个人站点都帖出来,互相交流一下!!
- 编程思维:如何用编程实现TDateTimePicker的24小时制到12小时制的转换?(散分)
- 怎么释放动态连接库(DLL)传过来的对象?
类似。TUpdateStatus用来表示状态。
问题一:
如果我用ADO进行多表更新时,我能否象BDE中的在OnpdateRecord事件中自已写SQL语言,虽然ADO支持自动的多表更新,但是如果我只想更新其中的某一个表时就不行了,另外如果用ADO自动的多表更新,也不太灵活
问题二:
TUpdateStatus不能反应TADODATASET中的delete更改性质代码如下(在缓存模式下):procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if(ADOTable1.UpdateStatus()<>usUnmodified)then
ShowMessage("尚未提交修改!");
end;我是才从BDE中转入到ADO来开发数据库应用程序,在用了一段时的ADO后,可能是我的能力有问题,觉得ADO的许多功能用不上,比如在用UpdateBatch时若使用arFiltered参数就会报错,而事件
WillChangeRecordset事件(缓存中的改变对底层表生效之前)却怎么都不执行...
而这上述问题我在网上查了很长时间,却始终没有得到一个正确的答案,难道我真的要转回BDE吗?
郁闷中......
还是用别的模式好。
帮你up吧
不用ltBatchOptimistic,不太可能吧,难以想象
问题2, 很少用ado的这些属性,全部用sql语句来实现,快而且容易调试
谢谢 paliang(我是好男儿,男儿当自强!!!)
说得没有错,但请你仔细的看我的问题,我也想用SQL来对指定的表来进行更新,但是我不知道
如何在ADO中使用SQL来对指定的表来进行更新,就象在BDEDATASET的OnpdateRecord事件中哪
么方便!
首先放置一个ADOConnection控件ADOConnection1;
然后双击该控件,在弹出窗口中选择build..按钮;
在弹出的“数据连接属性”框中的“提供程序”页选择并双击:“Microsoft Jet 4.0 OLE DB Provider”到连接页;
选择或输入数据库名称,测试一下就OK了;
如果有密码,就在“数据连接属性”对话框选择“所有”(*特别注意:不是在“连接”页上去掉“空白”钩填密码的*)页在属性值中输入你的密码。
LoginPrompt设为false,就不会弹出密码框了。然后放置一个ADOQuery1,将Connection 设为ADOConnection1;
在SQL属性上点三个点的小按钮,输入:select * from 表名;再放一个DataSource1:
Dataset属性设为ADOQuery1;再放一个DBGrid1:
DataSource属性设为DataSource1;选择ADOQuery1,将Active设为True;DBGrid1中是不是显示了数据.更多事例见:http://www.kaer.cn/default.aspx
谢谢你给我答复,但是我并不是要怎么连接数据库,
另外"没缓存机制,直接修改数据库内容"是什么意思难道是不用缓存机制?不太可能吧!
参考书为李维的高效数据库程序设计。
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from ...');
adoquery1.sql.open;// or .execsql;
麻烦你看懂题再回答,不要在这里占页面!!
http://expert.csdn.net/Expert/topic/2470/2470278.xml?temp=.7433893
---在最后