怎么使用adodb.recordset

时间:2020-12-27 01:46:43
首先,谢谢我上个贴给我最大帮助的仙女妹妹,也谢谢回贴帮助我的朋友.

现在我已经只是使用代码连接上了MS SQL.

我写了如下代码:
ador:=createoleobject('adodb.recordset');  //创建了记录集ador
ador.open('select * from tablename where id="001"',adoc,adopenkeyset,adlockpessimistic); //从数据表取得数据,adoc是创建adodb.connection.

但现在有个问题:
运行程序时报错,说"列名001无效",把ID的值001随便换成什么值比如008,就报错"列名008无效".

请问各位高手,这是为什么呀,是不是ador.open(strcommand,activeconnection,intcursortype,intlocktype,intcommandtype)这个语法写错了?

另外还有个小问题,VB里创建了ADODB.CONNECTION和ADODB.RECORDSET后,当输入那个点之后电脑会自动弹出所具有的属性、方法,为什么DELPHI中创建后输入点之后不会自动弹出所具有的属性、方法?


谢谢大家解决我的疑问。

9 个解决方案

#1


Delphi都可以,你说的列名无效,是数据库不存在那一列。至于所有的属性,方法你点查看变量值的窗口的那个Inspect就可以看到了。

#2


楼上的兄弟,我数据库里明明有ID这一列呀.
我还试过这样:ador.open('select   *   from   tablename  ,adoc,adopenkeyset,adlockpessimistic);   
不带条件的直接查询,这样也不行

#3


你怎么不用ado组件呢?

#4


补充说明下:

我这样写ador.open('select * from tablename,adoc,adopenkeyset,adlockpessimistic,adcmdtext);       
报错提示是"未申报的标识ADOPENKEYSET"

adopenkeyset,adlockpessimistic,adcmdtext这三个参数都会提示是未申报的标识.

我要是这样写ador.open('select * from tablename,adoc,1,2,0001);   程序就可以运行,但运行中报错,提示"invalid variant operation",是非法的变量操作的意思吧.


郁闷..................

#5


哪里有相关adodb的介绍呢? 

#6


接分先!

#7


引用 3 楼  的回复:
你怎么不用ado组件呢?

因为TADODataset对6万条记录的循环执行Next要1分钟,而用这个不到1秒钟

#8


ID字段是什么类型?

#9


ador:=createoleobject('adodb.recordset'); 
ador.open('select * from tablename where id=''001''',adoc,adopenkeyset,adlockpessimistic);

#1


Delphi都可以,你说的列名无效,是数据库不存在那一列。至于所有的属性,方法你点查看变量值的窗口的那个Inspect就可以看到了。

#2


楼上的兄弟,我数据库里明明有ID这一列呀.
我还试过这样:ador.open('select   *   from   tablename  ,adoc,adopenkeyset,adlockpessimistic);   
不带条件的直接查询,这样也不行

#3


你怎么不用ado组件呢?

#4


补充说明下:

我这样写ador.open('select * from tablename,adoc,adopenkeyset,adlockpessimistic,adcmdtext);       
报错提示是"未申报的标识ADOPENKEYSET"

adopenkeyset,adlockpessimistic,adcmdtext这三个参数都会提示是未申报的标识.

我要是这样写ador.open('select * from tablename,adoc,1,2,0001);   程序就可以运行,但运行中报错,提示"invalid variant operation",是非法的变量操作的意思吧.


郁闷..................

#5


哪里有相关adodb的介绍呢? 

#6


接分先!

#7


引用 3 楼  的回复:
你怎么不用ado组件呢?

因为TADODataset对6万条记录的循环执行Next要1分钟,而用这个不到1秒钟

#8


ID字段是什么类型?

#9


ador:=createoleobject('adodb.recordset'); 
ador.open('select * from tablename where id=''001''',adoc,adopenkeyset,adlockpessimistic);