Diamond ADO的问题(100分)

  • 主题发起人 主题发起人 Delphi On Me
  • 开始时间 开始时间
D

Delphi On Me

Unregistered / Unconfirmed
GUEST, unregistred user!
听说Delphi自带的ADO控件较慢,我就试了一下Diamond ADO 1.86,
速度果然要比前者快得多。

但是当我写一段更新数据的代码时,用到了事务处理,如果在开始事务前
ADO连接上已有数据集打开时,执行到ADOConnection.BeginTrans时就会报错:
[Microsoft][ODBC Microsoft Access Driver]Attribute cannot be set now.

比如已有一个ADOConnection上已有一个DADOQuery1打开,这时再运行下列语句

up.sql.add('update set ct=1 where dt=2');
ADOConnection.BeginTrans; //运行到此处就会出错
try
up.ExecSQL;
ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans;
end;

我用的数据库是Access的,上述情况在OLE DB Provider是Microsoft Ole DB
Privider for ODBC Drivers时才会出现,如果换用Microsoft Jet 4.0 OLE DB
Privider或者用Delphi自带ADO控件,就一切正常。

请帮我看看!谢谢!
 
不太清楚,因为我用的是1.90,没发现过此问题,你可以到www.51delphi.com去下。
 
两位能谈谈 diamond ado和自带ado的不同吗?
速度快,能快多少?
 
diamond ado BUG奇多,烦不胜烦
要想快,直接用原生ADO对象,最快
 
就是diamond ado比d5自带的太烂呢
 
左兄:原生ADO对象是指Delphi自带的那些ADO控件吗?可是我试了一下,那个狂慢啊!
 
原生是指ado的com对象,delphi自带的也是从ado的com对象中搞来的
你应该理解左轻候的原生是这样的:
var
adoconnect:variant;
begin
adoconnect:=createoleobject(....);
end;
 
直接用原生ADO对象,岂不是要烦死!
我要取返回的数据集,如何取呢?
还有没有其他又快又好的ADO控件?
 
问题是,只有这原生的才bug比较少啊,叫左轻候进来和大家讲解讲解吧
 
左冷禅,不,左轻候,快来啊!
 
一看就知道你没看过笑傲,应该是叫左盟主才对
 
Rich Explorer 3.1就是完全用原生ADO写出来的
下载这个,内附源码,看看就明白了:
http://delphi.antdown.com/downfile.asp?ID=5&location=re31.zip
其实用原生ADO并不是很烦,ADO本身已经封装得很好了
如果你写ASP,用的就是原生ADO
 
谢谢左盟主!
我已经下载了你的Re3.1,
可是在我的机器上运行会出错,提示“interface not supported”和
“初始化数据库时出错”,是怎么回事呢?
我的机器上已经安装了ADO,用Delphi的ADO Express没有问题。
 
你打开源码调试一下看,错出在什么地方
不要听honghs胡扯,我不是左冷禅……
 
想起个事,我的程序是直接抽取ADO 2.6的接口
而Diamond ADO和ADO Express都是使用ADO 2.1的接口
不知道这是不是原因,你可以安装MDAC 2.6试试
 
可能吧,
运行到ADOConnection1 := CreateOleObject('ADODB.Connection') as _Connection;
处出错。

再次谢谢左兄,在你的帮助下,我已经学会如何用原生ADO了。

不过在用ADO时又遇到另外一个问题,我的一个Access97表中有一个字段名为"password",
类型为长度为8的字符串,当我用一个sql语句往表里插数据时,居然告诉我
Sql语法有错,语句大致是“insert into tablea (fa,fa,password,fc,fc) Values
(1,1,'aaaa',0,0)”。而同一个语句在BDE环境下是不会出错的。更奇怪的是,我将
字段名改成“pwd”后,就一切正常了!请您再帮我看看,谢谢!

另外:MDAC 2.6在哪里下载?
 
请试试将password写成[password],当字段名与保留字相同时,应将SQL语句中的相应字段
名用[]括起来。
 
aspire说的应该是对的
MDAC在微软的站点有下,有cakk.126.com也有下
 
多人接受答案了。
 
后退
顶部